سؤال

يرجى عذر جهلي حول هذا الموضوع، وأنا جديدة نسبيا إلى السبات / NHibernate، ولكن لقد واجهت تعيين I لا يمكن معرفة:

وهذا هو ما يبدو جدول قاعدة البيانات الخاصة بي مثل:

<bincontents> 
  <id>5873715</id> 
  <title>Video Title</title> 
  <sortorder>0</sortorder> 
  <itemid>23079</itemid> 
  <itemtype>VIDEO</itemtype> 
</bincontents> 
<bincontents> 
  <id>5873716</id> 
  <title>Clip Title</title> 
  <sortorder>1</sortorder> 
  <itemid>131854</itemid> 
  <itemtype>CLIP</itemtype> 
</bincontents>

هل هناك طريقة لتعيين واحد واحد الى ومع حيث شرط؟

وهكذا كائن BinContent يمكن أن يكون تشير itemtype إما VIDEO أو CLIP. تم تمييز هذه كسلاسل، وأنا لا يمكن أن تغير ذلك للأسف.

وحتى إذا كان الحقل تشير itemtype يقول "VIDEO"، كنت ترغب في الحصول على "فيديو" وجوه العديد مقابل واحد، ولكن إذا كان يقول هذا المجال تشير itemtype "CLIP"، كنت ترغب في الحصول على العديد من لواحد كليب.

ومساعدة!

وأنا لست حتى متأكدا إذا كنت ترغب في استخدام الكثير الى واحد في هذه الحالة. ربما واحد الى واحد؟

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

المحلول

ويبدو لي وكأنه لديك مرشح لالميراث. إذا كان لديك نوع قاعدة مجردة من BinContents، لديها فئة مشتقة من VideoBinContents، الذي يحتوي فقط تعيين الفيديو، ووClipBinContents الذي يحتوي فقط تعيين كليب. تشير itemtype الخاص بك هو الممي الخاص بك. إلقاء نظرة هنا للمزيد: http://www.hibernate.org /hib_docs/reference/en/html/inheritance.html

نصائح أخرى

لا يمكن أن يكون لديك كل الفيديو كليب والكائنات في صفك وفقط للتأكد من أن كلا أبدا بالسكان في نفس الوقت؟ قد تحتاج بعض مزيد من المعلومات منك مثل البنية الطبقية الحالي. أيضا، هل هناك لن يؤدي الا الى أن يكون فيديو واحد لكل كائن بن والعكس بالعكس؟

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

والقيام بذلك من شأنه أن يسمح لك لتقديم تعيينات مختلفة لكل فئة فرعية.

هل يمكن أن نلقي نظرة على أي رسم الخرائط. مع 'أي' رسم الخرائط، يمكنك تعريف الارتباط متعددة الأشكال.

هذا (الفقرة 5.2.4)

وعلى أي حال، أنا لست على دراية الخاص بك المجال '، ولكن أعتقد جيم لديه نقطة أيضا. ربما يجب عليك مراجعة نماذج بيانات وdomainmodel (إن أمكن)، ومعرفة ما إذا كان نوعا من الميراث ليس من المناسب هنا.

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