首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ER-Diagram:三元关系-如何正确阅读?

ER-Diagram:三元关系-如何正确阅读?
EN

Stack Overflow用户
提问于 2013-08-22 03:20:34
回答 3查看 39.8K关注 0票数 18

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

它说你必须把你的手放在两个实体集上,然后像这样读它。

手头账号和用户:一对账号和用户可以关联M项目。

账号和项目:一对账号和项目可以关联M个用户。

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

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

EN

回答 3

Stack Overflow用户

发布于 2016-07-15 19:45:28

回答晚了,但可能会为未来的读者服务。

假设三元关系有参与实体A、B和C(对于大于3的度,它会变得非常复杂)。

理解这种关系的方法是始终将3个参与实体中的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是参与实体Treatment-Patient-Physician之间的M-N-1关系(按此顺序)。

票数 41
EN

Stack Overflow用户

发布于 2013-08-22 04:24:33

它很可能是一个层次结构,这意味着有许多帐户和许多用户。这也意味着帐户小于或等于用户。这意味着有更多的用户需要注册。最有可能的是,我使用了三元数据结构。

票数 0
EN

Stack Overflow用户

发布于 2018-10-26 21:56:12

这是另一个迟来的答案,但可能会服务于未来的读者。但是,是的,你是正确的@user2276094。

正如您所提到的,三元关系中的多重性是通过将一个实体(目标实体)与两个其他实体隔离,并将目标实体(例如员工)与来自两个其他实体(例如Client和Branch)的一次出现的固定对相关联来设计的。

因此,您可以将关系中的那些多重性(比如员工在分支机构注册客户)表述为,

对于一对固定的员工事件和分支事件,可能有客户,也可能没有客户(因为一些员工可能不注册客户,他们可能涉及其他职责)。

对于分支实例和客户端实例的固定对,必须有且仅有一个工作人员(因为一个客户只能由一个且仅有一个工作人员注册一次)。

对于固定的人员事件和客户端事件对,必须存在且仅有一个(假设客户端只能在一个分支机构注册)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18365870

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档