Skip to content
GitHub

Field (Column / အကွက်)

Field (Column) ဆိုတာ ဘာလဲ?

Section titled “Field (Column) ဆိုတာ ဘာလဲ?”

Field (သို့မဟုတ် Attribute / Column) ဆိုတာ Table တစ်ခုရဲ့ ဒေါင်လိုက် (Vertical) အကွက်လေးတွေကို ခေါ်တာပါ။ Database တစ်ခုမှာ အချက်အလက်တွေကို ခွဲခြားသိမ်းဆည်းတဲ့ အသေးငယ်ဆုံး ယူနစ်လေးတွေလည်း ဖြစ်ပါတယ်။

Field တစ်ခုစီက သက်ဆိုင်ရာ အချက်အလက် တစ်မျိုးတည်းကိုပဲ (ဥပမာ - နာမည်ဆို နာမည်၊ ဖုန်းနံပါတ်ဆို ဖုန်းနံပါတ်) တိတိကျကျ သိမ်းဆည်းပေးပါတယ်။

ဥပမာ - ဝန်ထမ်းစာရင်း (Employees Table)

Section titled “ဥပမာ - ဝန်ထမ်းစာရင်း (Employees Table)”
IDNamePosition
1AliceDirector
2BobManager

ဒီ Employees Table မှာ ID, Name, Position ဆိုတဲ့ Column တစ်ခုချင်းစီဟာ Field တွေပဲ ဖြစ်ပါတယ်။


Database ဒီဇိုင်းဆွဲရာတွင် အဖြစ်များသော အမှားများ

Section titled “Database ဒီဇိုင်းဆွဲရာတွင် အဖြစ်များသော အမှားများ”

Field တွေကို တည်ဆောက်တဲ့အခါ အောက်ပါ အမှား ၃ မျိုးကို အထူး ရှောင်ရှားသင့်ပါတယ်။

Field တစ်ခုတည်းမှာ အချက်အလက် (Information) နှစ်ခု ဒါမှမဟုတ် နှစ်ခုထက်ပိုပြီး ရောပြွမ်းသိမ်းဆည်းတာကို ခေါ်ပါတယ်။

ဒီလို ရောသိမ်းလိုက်ရင် Data ပြန်ရှာတာ (Searching) နဲ့ အစီအစဉ်တကျ စီတာ (Sorting) တွေမှာ အရမ်းခက်ခဲသွားပါတယ်။

  • Bad Design: FullName ဆိုတဲ့ Field တစ်ခုတည်းမှာ “Alice Chen” လို့ သိမ်းတာမျိုး။ (နောက်ဆုံးနာမည် “Chen” နဲ့ ရှာချင်တဲ့အခါ ခက်သွားပါတယ်။)
  • Good Design: FirstName (Alice) နဲ့ LastName (Chen) ဆိုပြီး Field နှစ်ခု သီးခြား ခွဲသိမ်းတာက အကောင်းဆုံးပါ။

Field တစ်ခုတည်းမှာ တူညီတဲ့ အမျိုးအစား တန်ဖိုးတွေကို ကော်မာ (Comma) ခံပြီး အများကြီး စုသိမ်းတာမျိုးပါ။ ဒါဟာ Database ဒီဇိုင်းရဲ့ အခြေခံ စည်းမျဉ်းဖြစ်တဲ့ “Field တစ်ခုမှာ Value တစ်ခုပဲ ရှိရမယ် (Atomic Value)” ဆိုတာကို ချိုးဖောက်နေတာပါ။

  • Bad Design: PhoneNumbers ဆိုတဲ့ Field တစ်ခုတည်းမှာ “09123456, 09987654” ဆိုပြီး ရောသိမ်းတာမျိုး။
  • Good Design: Phone1, Phone2 ဆိုပြီး Field ခွဲသိမ်းတာ ဒါမှမဟုတ် ဖုန်းနံပါတ်တွေအတွက် သီးသန့် Table အသစ်တစ်ခု (ဥပမာ - Customer_Phones) ထပ်ခွဲထုတ်တာမျိုး လုပ်သင့်ပါတယ်။

တခြား Field တွေက တန်ဖိုးတွေကို ပေါင်းစပ် တွက်ချက်ပြီး (Calculate) မှ ရလာတဲ့ အဖြေကို သီးသန့် Field တစ်ခုအနေနဲ့ ထပ်သိမ်းတာကို ခေါ်ပါတယ်။

ဒီလို တွက်ချက်ပြီးသား တန်ဖိုးတွေကို Database ထဲမှာ တိုက်ရိုက် သိမ်းထားရင်၊ မူလ Data တွေ ပြောင်းသွားတဲ့အခါ လိုက်မပြင်မိရင် အချက်အလက်တွေ လွဲချော် (Data Inconsistency) တတ်ပါတယ်။ ဒီလို တွက်ချက်မှုတွေကို Database ထဲမှာ မသိမ်းဘဲ Application Code တွေ ဒါမှမဟုတ် Query ခေါ်တဲ့ အချိန်ကျမှသာ တွက်ချက်ယူတာ (Compute on the fly) ပိုကောင်းပါတယ်။

  • Bad Design: Quantity နဲ့ UnitPrice ရှိပြီးသားကို မြှောက်ပြီး TotalPrice ဆိုတဲ့ Field အသစ်တစ်ခု ထပ်ထည့်တာမျိုး။
  • Good Design: Table ထဲမှာ Quantity နဲ့ UnitPrice ကိုပဲ သိမ်းထားပါ။ စုစုပေါင်းတန်ဖိုး လိုချင်ရင် Query ခေါ်တဲ့အခါ SELECT (Quantity * UnitPrice) AS TotalPrice လို့ တွက်ထုတ်တာ အကောင်းဆုံးပါ။