18

我不太清楚如何阅读 ER-Diagram 中的三元关系。可以说这是给出的三元关系。我能从中解释什么?

账户-用户-项目三向关系

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

Hand on Account and User:一对Account和User可以关联M个项目。

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

亲身体验项目和用户:一对项目和用户可以与 1 个帐户相关联。

这些对总是一对一的关系还是可以有多少对?

4

3 回答 3

44

迟到的答案,但可能会为未来的读者服务。

假设三元关系具有参与实体 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

具体例子

我借用我在网上找到的这张图片。

在此处输入图像描述

导致此图像的我们的商业模式的现实是:

  • 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是参与实体之间的MN-1关系Treatment-Patient-Physician(按此顺序)。

于 2016-07-15T11:45:28.050 回答
0

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

于 2013-08-21T20:24:33.157 回答
0

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

正如您所提到的,通过将一个实体(目标实体)与其他 2 个实体隔离,并将目标实体(例如员工)与来自其他 2 个实体(例如客户和分支机构)。

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

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

对于固定对的 Branch 事件和 Client 事件,必须只有一个 Staff(因为一个 Client 只能由一个且唯一的 Staff 成员注册一次)。

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

于 2018-10-26T13:56:12.017 回答