model - ER图: Ternary Relationship - How to read properly?

标签 model entity-relationship relationship ternary

我不太确定如何阅读 ER 图中的三元关系。
假设这是给出的三元关系。
我可以从中解释什么?

account-user-project three-way relation

它说你必须 Handlebars 放在 2 个实体集上,然后像这样阅读。

手上的帐户和用户:
一对 Account 和 User 可以关联 M 个项目。

手帐和项目:
一对 Account 和 Project 可以关联 M 个用户。

动手项目和用户:
一对项目和用户可以与 1 个帐户相关联。

这些对是否总是一对一的关系,或者有多少对?

最佳答案

迟到的答案,但可能为 future 的读者服务。

假设三元关系有参与实体 A、B 和 C(对于度数 > 3,它变得非常棘手)。

解读这种关系的方法是始终从 3 个参与实体中分离出 2 个,并查看它们与第三个实体之间的关系。并且您需要对所有可能的对执行此操作。

更准确地说:您每次配对的 2 个实体,需要被视为它们中的每一个的“一个”,要回答的问题是第三个实体中的“多少”可以对应于这一对。

抽象例子
"One of A and one of B can {have/associate with/belong to} X? of C" .如果 X?,我们需要利用我们对商业模式的了解来回答应该是 1N .这是分配给连接三元关系与实体 C 的边上的三元关系的基数。 .

这个短语必须针对所有可能的组合(不是排列,因为配对的顺序无关紧要)进行改革。所以回答问题How many pairs are there? ,简单的数学表明,将 3 个事物组合成 2 组的可能方法是:
3!/(2!*(3-2)!) = 3 .

因此,使用我们的商业模式回答的所有可能的短语是:

  • One of A and one of B can {have/associate with/belong to} ?X? of C
  • One of A and one of C can {have/associate with/belong to} ?Y? of B
  • One of B and one of C can {have/associate with/belong to} ?Z? of A

  • 具体例子

    我正在借用我找到的这张图片 online .

    enter image description here

    导致这种形象的我们商业模式的现实是:
  • 1 Physician with 1 specific Patient can log M Treatments
  • 1 Physician logs 1 specific Treatment for N Patients
  • 1 Patient is logged 1 specific Treatment by 1 Physician

  • 所以三元关系log是参与实体之间的 M-N-1 关系 Treatment-Patient-Physician (按此顺序)。

    关于model - ER图: Ternary Relationship - How to read properly?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18365870/

    相关文章:

    sql - 多对多关系数据库设计

    python - 如何从 django 模板访问多对多 "through"表的属性?

    php - 单一 Eloquent 关系的多个表

    mysql - 如果找不到记录,如何通过扩展模型对 Rails 中的存档进行额外搜索?

    PHP MVC 将表单值传递给 Controller ​​和模型

    java - JPA OneToMany 和 ManyToOne 之间的关系

    mysql - rails 3 关系模型的脚手架

    ios - Swift SpriteKit 类结构的良好实践

    mysql - 如何将流程添加为数据库中的关系,例如捐赠记录等

    ios - CoreData 返回空对象集