我在项目的ER模型中有这些实体:
我应该用三元关系连接它们,还是用二元关系连接它们?我使用三元关系。也许我没有这个关系的最佳名称,但它涉及评分。
如果我应该使用三元关系,我应该使用连接表的Ids作为表的主键,它将表示数据库中的关系
答案 0 :(得分:1)
根据您的图表,似乎每个Student
/ Subject
组合都会确定Professor
。让我们将其与二元关系进行比较:
Student
和Subject
之间的二元关系可以让您记录Students
哪个Subjects
正在拍摄Professor
,而不指定Professor
。这对您的系统有效,还是有必要为每个Student
/ Subject
组合捕获Student
?
Professor
和Professor
之间的二元关系会为每个Student
记录Professors
,或者每个{{1}可能会记录一组Student
}}。如果不知道每个Professor
向Student
教授哪个主题,这是否有用?
Subject
和Professor
之间的二元关系会为每个主题记录一个或多个Professors
。这可能有助于捕捉Professor
能够或有资格教授的内容,而不是他们被分配或计划教授的内容。
我参与了两个学校管理系统,我们捕获了(Student PK, Subject PK)
(学生们学习的科目)和(Professor PK, Subject PK)
(可以教授教授的科目),但不是三元关系{ {1}},我们定义了主题组或部分(Student PK, Subject PK, Professor)
和学生部分分配Sections (SectionID PK, Subject, Professor)
。主题组或部分提供了附加其他属性的便利位置,例如房间号,时间表安排,学费语言等。