【发布时间】:2017-11-07 21:43:24
【问题描述】:
我的项目中的 ER 模型中有这些实体:
- 学生
- 教授
- 主题
我应该将它们与三元关系联系起来,还是每个都与二元关系联系起来?我使用了三元关系。也许我没有最好的关系名称,但它涉及分级。
如果我应该使用三元关系,我应该使用连接表中的 Id 作为表示数据库中关系的表的主键
【问题讨论】:
我的项目中的 ER 模型中有这些实体:
我应该将它们与三元关系联系起来,还是每个都与二元关系联系起来?我使用了三元关系。也许我没有最好的关系名称,但它涉及分级。
如果我应该使用三元关系,我应该使用连接表中的 Id 作为表示数据库中关系的表的主键
【问题讨论】:
根据您的图表,似乎每个Student/Subject 组合决定了一个Professor。让我们将其与二元关系进行比较:
Student 和Subject 之间的二元关系允许您记录哪个Students 占用哪个Subjects,而无需指定哪个Professor。这对您的系统有效,还是需要为每个Student/Subject 组合捕获Professor?
Student 和Professor 之间的二元关系将为每个Student 记录一个Professor,或者可能为每个Student 记录一组Professors。在不知道每个 Professor 向 Student 教授哪个主题的情况下,这是否有用?
Subject 和Professor 之间的二元关系将为每个主题记录一个或多个Professors。这可能有助于了解 Professor 能够或有资格教授的内容,而不是他们被分配或计划教授的内容。
我在两个学校管理系统上工作过,我们捕获了(Student PK, Subject PK)(学生学习的科目)和(Professor PK, Subject PK)(教授可以教授的科目),但我们不是三元关系(Student PK, Subject PK, Professor),而是定义了一个主题组或部分Sections (SectionID PK, Subject, Professor) 和学生部分分配(Student PK, Subject PK, SectionID)。学科组或部分提供了一个方便的位置来附加更多属性,例如房间号、时间表安排、教学语言等。
【讨论】: