如何读取 ERD 中的桥接实体?

How do I read bridge entities in ERDs?

第一次在这里发帖,因为有人告诉我,如果我遇到困难,请向这个社区寻求帮助!!

我最近在这学期接触了数据库,我很难掌握旨在消除多对多关系的桥梁实体。

最典型的例子就是STUDENT和CLASS之间的关系; 其中 STUDENT 可以在很多 CLASSES 中,而 CLASS 可以有很多 STUDENTS。 通过引入 ENROLL 实体来固定 M-M 关系。在这里我们会读到:一个学生可以在许多 CLASSES 中注册,而一个 CLASS 中可能有许多学生在其中注册,但是每个学生只能在 CLASS 中注册一次。

就我而言,我试图通过引入一个 INGREDIENT 实体来为一家制药公司解决 PR​​ODUCT 和 RAW MATERIAL 之间的 M-M 关系问题,如下所示:

原始 MATERIAL 1----M 成分 M----1 产品

我不确定桥接是否可行,因为我无法像上面的 STUDENT-CLASS 示例那样解释它。

您如何解读?

"bridge" 或 "associative" 实体的概念来自网络数据建模,是一种处理多对多二进制以及三元和更高关系的方法。网络数据建模是一种简单的物理数据模型,基于将实体表示为记录,将关系表示为 references/pointers.

自 1970 年代以来,开发了数据的关系模型,它使用关系(表格)来记录值集(代表业务实体、度量和标签)之间的关系,允许直接表示多对-许多关系和三元及更高的关系。

实体-关系模型试图通过区分实体关系和关系关系,在关系模型之上提供更多的概念结构。

我对历史的看法是,在现代数据建模中,我们不再解析或删除多对多(或三元或更高)关系(除非您使用的是基于对象关系映射器或框架网络数据模型)。具有复合键的表,由两个或多个实体键组成,直接表示关系,并允许我们处理关系上的属性,这是网络数据建模中缺少的另一个功能。

对于您的情况,在您的 Ingredient 关系中添加 Quantity 属性可能会有用。这里的解释是 Raw material 指的是 material 的一种类型,而不是原始 material 的特定片段或选择。学生有身份,raw material一般没有。

请注意,制药公司可能会跟踪特定批次的 materials。