我在绘制和理解ERD图时遇到了一些困惑/困难,下面是问题:
“学生入读提供教师授课的大学。当学生注册时,他们必须注册他们希望学习的课程。然后,学院将为学生分配一名教师,即教师。“
这是正确的图表吗?
大学应该是学生实体的实体或属性吗?
答案 0 :(得分:1)
大学应该是学生实体的实体或属性吗?
问题是:“如果没有第一个学生参加,大学是否存在?”。
是的,为了让学生上大学必须存在的大学;因此,大学是独立实体。
接下来的问题是:大学应该是学生实体中的属性,还是需要单独的关系(表格,实体){STUDENT_ID, COLLEGE_ID}
?
这取决于您的“业务规则”(约束)。
[1]
如果规则(约束)是:
[c1]
每个学生只能上一所大学;对于每所大学来说,有可能不止一个学生就读这所大学。
然后将COLLEGE_ID
添加到学生实体。
[2]
如果规则(约束)是:
[c2]
每个学生都可以参加一个以上的大学;对于每所大学来说,有可能不止一个学生就读这所大学。
您需要添加依赖实体 {STUDENT_ID, COLLEGE_ID}
要整理教师,课程,学生详细信息,请参阅this SO example。
您的原始模型几乎没有其他弱点:
大学可以提供没有学生报名参加该课程的课程吗?
老师可以在不止一所大学任教吗?
老师可以教授多门课程吗?
可以不止一位老师教授课程吗?
如何确保学生参加课程,教师指导学生;那老师还教这门课程吗?
当您完成此操作时,您将添加更多实体。
答案 1 :(得分:1)
您的图表不是正确的ER图表。虽然省略属性以关注实体和关系可能很有用,但至少应使用形状来表示关系集,以便符号不排除三元和更高的关系。在Chen的符号中,关系由钻石形状表示。
College
最好作为一个独立的实体集处理,因为它与多个其他实体集相关联(Student
,Course
,可能还有Teacher
。当某些东西是关系和属性的主体时,它应该是一个实体集。在ER中,属性是从实体集(或关系集)到值集的映射,即它们应该用于标签和度量。
您选择的关系看起来很合理,但我建议您考虑直接将Teacher
与College
相关联。取决于你如何处理Course
(大学可以提供相同的课程或每个提供自己的实例吗?)和Student
(学生可以在多个大学注册,可以在没有任何学生注册的情况下开设课程?),可能无法导出Teacher
和College
之间的关系。