سؤال

أحاول نموذج متجر البقالة.في المتجر ، هناك العديد من "الممرات".كل "الممر" مجموعة من "الفئات" من "عناصر" من المخازن.كل من "الفئة" يمكن أن تنتمي فقط إلى واحد "الممر".كل "البند" يمكن أن يكون واحد فقط "الفئة".

نموذج البيانات يبدو مستقيمة لي:

  • و "الممر" الجدول مع هوية و الوصف
  • و "الفئة" الجدول مع معرف الاسم ، AISLE_ID أن refernces "ممر" الجدول
  • "عنصر" الجدول مع معرف الاسم والوصف ، CATEGORY_ID مراجع "الفئة"

نموذج الكائن حيث أحتاج مساعدة:

  1. الممر الكائن يمكن أن يكون لديك قائمة من فئة البند الكائنات داخلها.
  2. الممر الكائن يمكن أن يكون لديك قائمة من فئة الأشياء.فئة كائن يمكن أن يكون لديك قائمة من البند الكائنات داخلها.
  3. الممر يمكن أن يكون قائمة البند الكائنات.فئة كائن يمكن أن يكون لديك قائمة من البند الكائنات.

في كل حالة ، بند سوف يكون منطقيا فئة كائن داخلها.لدي DAO لكل كائن المجال ، وذلك اعتمادا على الطريقة التي فعلت ذلك ، sql التغييرات قليلا.أي أفكار ؟

هل كانت مفيدة؟

المحلول

انا اصوت للإختيار رقم 2يبدو أكثر منطقية من رقم 1 أو رقم 3.

هل تعتقد أن العلاقات يجب أن تكون ثنائية الاتجاه؟هل يجب أن يكون العنصر قادرًا على معرفة من هم فئته الأصلية وممر أجداده؟

نصائح أخرى

سأختار الخيار رقم 2.

الاهتمام الرئيسي للممر هو الفئات الموجودة بداخله.يجب أن يكون الأمر متروكًا لفئة الفئة لتحديد العناصر الأعضاء.يؤدي هذا إلى الحفاظ على اتساق مستويات التجريد في كل كائن - حيث يكون الممر هو الكائن ذو المستوى الأعلى، والفئة هي المستوى الأكثر تفصيلاً قليلاً، والعنصر هو الأكثر تفصيلاً.

عدد 2 يجعل معظم معانيها إذا كانت هذه هي فقط 3 خيارات.

أعتقد لو تم إنشاء هذا النموذج, وأود أن استخدام النموذج التالي (تعديل صغير, فقط أحاول أن تبقى قريبة من أفكارك ممكن):

الممر الكائن يمكن أن يكون لديك قائمة من فئة الأشياء ، فئة كائن يمكن أن يكون لديك قائمة من البند الأشياء داخلها ، و عنصر يرتبط مع فئة الممر.

بلدي التعديل يبدو أكثر على الجانب البيانات.

السبب في أنني قد فعلت ذلك ، لأن أحدهم يقول "مرحبا أنا أبحث عن هذا البند بالذات ، والتي الممر؟" -- 1 بحث سوف تعطيك الجواب.في حين الخاص بك مع نموذج البيانات, سوف تحتاج 2 عمليات البحث.

على الأقل هذا ما أفكر في ذلك.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top