哪个基数适用于此处描述的方案

时间:2016-04-05 05:52:06

标签: database-design entity-relationship erd cardinality

我正在尝试理解Crow的数据库设计符号(ER图)。我想为一个场景创建一个ER图,其中一个STUDENT(实体/表)可以注册多个课程(COURSES_ENROLLED表/实体)。

我创建了以下ER图。

enter image description here

现在,对于这种情况,"连接符号"是适用的,标有(1)或(2)的那个?任何解释都会有很大的帮助。

1 个答案:

答案 0 :(得分:1)

我假设您还有一个实体COURSE(因为courseId中有COURSES_ENROLLED作为外键。所以COURSES_ENROLLED恰好将一名学生与该学生注册的一门课程联系起来,对吗?

这由图中的替代(1)表示。每个COURSES_ENROLLED实例只能看到一个STUDENT实例,而每个学生可以反过来看到许多实例。

如果您没有中间实体并直接将STUDENT链接到COURSE,那么您的替代方案(2)将是合适的。在这些之间,多重性将是m:n,所以你的两端都会有一只乌鸦脚。但是courseId将是正确实体的主键,它应该被称为COURSE

顺便说一下,检查在(1)和(2)中表达的约束,即学生必须注册至少一门课程,是否符合您的功能要求。可能每个学生将在某个时间点注册至少一门课程,但如果您将其作为数据模型中的约束包含在内,则需要始终保持 。所以你现在的模型不允许创建一个学生,而不是一次将她与至少一门课程联系起来。