我有一个奇怪的问题,即拥有多对多关系的正确对象模型。比如说,我有3个实体:CLASS,SUBJECT,以及以下数据模型的学生:
Table CLASS:
ID INTEGER,
CLASSNAME VARCHAR
Table SUBJECT:
==============
ID INTEGER
NAME VARCHAR
Table STUDENT:
==============
ID INTEGER
PRIMARY_SUBJECT INTEGER REFERENCES SUBJECT (ID)
CLASS_ID INTEGER REFERENCES CLASS (ID)
Table CLASS_SUBJECTS (Subjects that are taught in a class, a subject can be taught in more than one class):
===========================================================================
CLASS_ID INTEGER REFERENCES CLASS(ID)
SUBJECT_ID INTEGER REFERENCES SUBJECT(ID)
如何确保学生的CLASS和PRIMARY_SUBJECT是有效的条目?只有CLASS_SUBJECTS表中有条目时,一对CLASS和PRIMARY_SUBJECT才有效。
我希望对象模型同时包含CLASS和PRIMARY_SUBJECT,如下所示:
Class STUDENT {
.... //Some fields
CLASS myClass;
SUBJECT primarySubject;
}
PS:我不想取代CLASS&使用CLASS_SUBJECT的SUBJECT成员,因为CLASS成员中有许多东西需要作为STUDENT对象的一部分。