May 31, 2014

Database Design

Data Modeling


View အပိုင်းကို SceneBuilder သုံးပြီး ရေးတဲ့အတွက်  အတော်လေးကို မြန်မြန်ဆန်ဆန်ပြီးသွားပါတယ်။ လုပ်ချင်တဲ့ အရာတွေကိုလည်း လုပ်ဆောင်နိုင်ကြောင်းကို စမ်းစစ်မိပါတယ်။ အဲ့ဒီနောက်ပိုင်းမှာ MySQL ရဲ့ workbench ကို သုံးပြီး Database Design ကို ဆွဲပါတယ်။ သူကလည်း Drug And Drop နဲ့ ဆွဲလို့ရတဲ့အတွက် အတော်လေးကို တာသွားပါတယ်။

အသုံးပြုမယ့် Table ကတော့ အားလုံး ၈ ခုပါ။

  • ရန်ကုန်မြို့ရှိလူတွေကိုသာ Target ထားတဲ့အတွက် township ကို ပဲသုံးပါတယ်
  • ကျောင်းသားတွေအတွက်ကတော့ student
  • အချိန်စာရင်းအတွက်ကတော့ time_table
  • သင်ခန်းစာ အတွက်ကတော့ course
  • သင်တန်းကိုတော့ jdc_class မှာ သိမ်းပါမယ်
  • ဘယ်ကျောင်းသားက ဘယ်အတန်းမှာတက်တယ်ဆိုတာကို မှတ်ထားဖို့အတွက်ကတော့ student_jdc Table ကို သုံးပါမယ်
  • ငွေအဝင်အထွက်ကတော့ transaction နဲ့ သိမ်းပါမယ်
  • ကျောင်းလခကိုတော့ bill နဲ့ သိမ်းပါတယ်
  • နောက်ဆုံးထွက်ငွေအတွက်ကတော့ output table ကို သုံးပါတယ်

အထက်ပါအတိုင်း Data Model ကို ရေးပြီးတဲ့အခါမှာ MySQL Database မှာ Synchronize လုပ်ပြီး Table တွေကို တည်ဆောက်လိုက်ပါတယ်။ View နဲ့ DB ပြီးပြီဆိုတော့ လော့ဂျစ်နဲ့ အာကီတက်ချာကို စဉ်းစားဖို့ ကြံပါတယ်။


About Architecture

ပုံမှန်ဆိုရင် ကောင်တာက တစ်ယောက်ထဲသုံးမှာမို့လို့ Standalone Desktop Appilcation လည်းဖြစ်ပါတယ်။ ဒါပေမယ့် နောက်ပိုင်းမှာ စက်တွေအများကြီးသုံးလာနိုင်တယ်။ ပြီးတော့ Reference ကိုလည်း Android တို့လို၊ Tablet တွေကနေ ကြည့်ချင်လည်း ကြည့်နိုင်မယ်။ အဲ့ဒီအတွက် Client Server ပုံစံကို သုံးမယ်စဉ်းစားပါတယ်။ နောက်ပြီး RESTFul နဲ့ Web Service ကို ဖွင့်ထားမယ်ဆိုရင် ဘယ်ပလတ်ဖောင်းကမဆို တပြေးညီထဲသုံးနိုင်မှာဖြစ်တယ်။ 

နောက်ပြီး ပတ်ဝင်းကျင်ရှားတဲ့ EJB ကို မသုံးချင်တဲ့အတွက် CDI ကို သုံးမယ်စဉ်းစားပါတယ်။ အသုံးပြုမယ့် Architecture ကတော့ အောက်ပါအတိုင်း ဖြစ်ပါတယ်။


Client ဘက်မှာ Lambda Expression ကို သုံးချင်တဲ့အတွက် Java SE 8 ကို အသုံးပြုမယ် စဉ်းစားပါတယ်။ Lambda Expression ကို အသုံးပြုခြင်းအားဖြင့် Code တွေကို ရှင်းရှင်းလင်းလင်းနဲ့ ထိထိရောက်ရောက် အသုံးပြုနိုင်ပါတယ်။ နောက်ပြီး Streams နဲ့ Functional Programming Style ကို သုံးပြီး Data တွေကို Manipulate လုပ်ရတာ လွယ်ကူစေနိုင်မှာ ဖြစ်တယ်။

နောက်အခေါက်ကနေစပြီး ကုဒ်ရေးတဲ့ အကြောင်းတွေကို ဆက်ပြီးဖော်ပြသွားပါဦးမယ်။

ဆက်ပါဦးမယ်။
မင်းလွင်

No comments:

Post a Comment