何时使用关联实体?

20

假设有两个实体称为员工和活动。一个员工可以参与多个活动。而一个活动也可以有多个员工。我已经知道这是一种多对多的关系。

在绘制 ER 图(Chen 符号)时,这种关系用钻石形状表示。但是,关联实体有一个单独的符号,它表示两个实体之间的多对多关系。

1)那么在使用 Chen 符号绘制 ER 图中的多对多关系时,应该使用钻石形状还是关联实体形状(方框内的钻石)?
2)它们表示的是相同的含义还是不同的含义?
3)如果它们是两个不同的符号,如何区分使用哪个符号?

2个回答

46

当你需要一个关系参与到另一个关系中时,可以使用关联实体。

例如:

Enrollment relationship ERD

对于普通的StudentCourse之间的多对多关系,我们只需要使用一个菱形。但是,如果我们想将EnrollmentTeacher关联起来,我们可以将Enrollment转变为关联实体。

Enrollment associative entity ERD

在物理上,我们的数据库看起来像这样:

Enrollment associative entity tables

Enrollment变成一个三元关系,其中Teacher是一个可选角色,意义基本相同(除了它会被非规范化,并且存在可空角色)。


2
你总是回答我的问题。感谢你花时间提供清晰详细的答案 :) - Ivantha
@reeanb 在ER图中具有非常少的关联实体是否意味着应用程序功能不丰富? - Jason Krs
1
@JasonKrs 不,数据模型只定义了应用程序可以知道什么,而不是它可以做什么。 - reaanb
@reaanb 好的。谢谢。 - Jason Krs
关联实体不是用来解决多对多关系的吗?https://www.sciencedirect.com/topics/computer-science/associative-entity是的,你的回答显然是正确的。但我认为关联实体的主要重点是解决多对多关系。https://books.google.com.bd/books?id=4BuKZ3-RKncC&lpg=PA80&dq=%22Associative%20entities%22%20database&pg=PA80#v=onepage&q&f=false - Shamsul Arefin
显示剩余2条评论

1

关联实体被用于实现两个或多个实体之间的多对多关系。该实体由要连接的每个实体的主键组成。在Chen模型中,组合实体用菱形表示,并置于一个矩形内。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接