السلام عليكم .
لدي مجموعة من الجداول في قاعدة بيانات ( MySQL مثلاً ) ،
أريد كتابة كلاسات ، تقابل تلك الجداول في الجافا .. Data Objects أو Beans .
أسمع انه يوجد تقنيات أو مكتبات تقدم المطلوب ( اسم التقنية ORM على ما أظن ) ، ورأيت موضوع للأخ هويدي ، يبدو أنه قريب من الفكرة .
ولكن سؤالي الان هو حول تصميم وهندسة الكود ، بدون أدات مساعدة .
فافرضوا أنني استخدم قاعدة بيانات ، مبنية على هذا المودل ( مودل فيزيائي لقاعدة البيانات ) ، بغض النظر عن معنى تلك الجداول :
الأسئلة :
1- كيف يمكن أن اكتب كلاسات تقابل تلك الجداول ؟ هل كل جدول يقابله كلاس معين ، وكل عمود يقابله member معين ؟
2- الجداول التي تنتج من علاقة many-to-many ، هل أمثلها في الجافا ؟ أم أتجاهلها ، أم ماذا أفعل بها ؟
أنا تجاهلتها .. واستخدمت طريقة كهذه للاستغناء عن الكلاس الثالث الذي يمثل علاقة many-to-many
class User{
String id;
Vector groups;
}
class Group{
String id;
Vector user;
}حيث كل مستخدم موجود في أكثر من مجموعة ، وكل مجموعة تحوي على أكثر من مستخدم .
3- العلاقة بين EventLog و User هي علاقة one-to-many ، السؤال :
في الجافا ، كتبت كلاس اسمه Event و User ..
في الكلاس Event هل أكتب شيء كهذا :
class Event
{
String id;
User sender;
}أو اكتبها هكذا :
class Event{
String id;
String user_id;
};أي أن مشكلتي الأساسية هي مع Foreign key لا أعرف ما أفضل طريقة لتحويله الى الجافا .. هل أحوله على شكل كلاس أو حسب نوع ذلك العمود ( Integer - String ) .
4- ماهي أفضل طريقة لتسمية تلك الكلاسات المتولدة من جداول ؟ هل هناك معيار عام ، أو عرف متبع بين المبرمجين ؟
أحاول أن اكتب كود بطريقة واضحة ، وبأسلوب جيد .. فأنا في بداياتي مع JEE بشكل عام .
