Skip to content
GitHub

Field (Column / အကွက်)

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

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

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

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

လက်တွေ့ ဥပမာ - employees Table

Section titled “လက်တွေ့ ဥပမာ - employees Table”
IDNamePosition
1AliceDirector
2BobManager

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


Database Design ရေးဆွဲရာတွင် အဖြစ်များသော အမှား ၃ ခု

Section titled “Database Design ရေးဆွဲရာတွင် အဖြစ်များသော အမှား ၃ ခု”

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

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

ဒီလို ရောသိမ်းလိုက်ရင် Searching နဲ့ Sorting တွေ ပြုလုပ်တဲ့အခါ Query ရေးရ ခက်ခဲသွားပါတယ်။

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

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

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

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

ဒီလို တွက်ချက်ပြီးသား Value ကို Database ထဲမှာ တိုက်ရိုက် သိမ်းထားရင်၊ မူလ Data ပြောင်းသွားတဲ့အခါ Data Inconsistency (အချက်အလက် မကိုက်ညီမှု) ဖြစ်ပေါ်စေပါတယ်။ ဒီလို တွက်ချက်မှုတွေကို Query ခေါ်တဲ့ အချိန်ကျမှသာ (SELECT (Quantity * UnitPrice) AS TotalPrice) Compute လုပ်ယူတာ ပိုမို သင့်တော်ပါတယ်။

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