【问题标题】:How do I read bridge entities in ERDs?如何读取 ERD 中的桥实体?
【发布时间】:2017-12-02 19:54:24
【问题描述】:

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

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

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

在我的例子中,我尝试通过引入如下所示的 INGREDIENT 实体来解决制药公司的 PRODUCT 和 RAW MATERIAL 之间的 M-M 关系问题:

原料1----M成分M----1产品

我不确定这座桥是否成功,因为我无法像上面的 STUDENT-CLASS 示例那样解释它。

你会如何解释这个?

【问题讨论】:

  • 欢迎来到 Stack Overflow!不幸的是,您的问题相当广泛。当您显示代码时,您将获得更好的响应,例如表的 DDL 和/或实体框架类。另外,请尝试通过代码解释您所说的 我无法解释 (...) 的含义。

标签: entity-framework erd


【解决方案1】:

“桥”或“关联”实体的概念来自网络数据建模,是一种处理多对多二元以及三元和更高级别关系的方法。网络数据建模是一种简单的物理数据模型,它基于将实体表示为记录并将关系表示为引用/指针。

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

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

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

在您的情况下,在您的 Ingredient 关系上添加 Quantity 属性可能会很有用。这里的解释是Raw material 指的是一种材料,而不是特定的一块或原材料的选择。学生有身份,原材料一般没有。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-03-14
    • 2013-11-18
    • 2018-07-29
    • 1970-01-01
    • 1970-01-01
    • 2019-11-19
    • 2011-05-04
    相关资源
    最近更新 更多