我不太确定如何阅读 ER 图中的三元关系。
假设这是给出的三元关系。
我可以从中解释什么?
它说你必须 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?
,我们需要利用我们对商业模式的了解来回答应该是 1
或 N
.这是分配给连接三元关系与实体 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 .
导致这种形象的我们商业模式的现实是:
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/