像这样的……
CREATE TABLE STUDY (
STUDENT_ID int REFERENCES STUDENT,
SUBJECT_ID int REFERENCES SUBJECT,
DEPARTMENT_ID int NOT NULL REFERENCES DEPARTMENT,
PRIMARY KEY (STUDENT_ID, SUBJECT_ID)
);
看看我们如何有一个主键 not 跨越所有列。 DEPARTMENT_ID 从主键中省略,这意味着我们可以:
稍微换个说法:给定的学生只能学习给定的科目一次,而且这发生在特定的部门。
你应该创建一个额外的关系 R (studnr, subjectnr, departementnr) 由于 1:N:N 约束,每个部门只能使用一次实例,因此 departmentnr 应该是唯一的主键属性。