我不太清楚如何阅读 ER-Diagram 中的三元关系。可以说这是给出的三元关系。我能从中解释什么?
它说您必须将手放在 2 个实体集上,然后像这样阅读它。
Hand on Account and User:一对Account和User可以关联M个项目。
手把手的账户和项目:一对账户和项目可以关联M个用户。
亲身体验项目和用户:一对项目和用户可以与 1 个帐户相关联。
这些对总是一对一的关系还是可以有多少对?
我不太清楚如何阅读 ER-Diagram 中的三元关系。可以说这是给出的三元关系。我能从中解释什么?
它说您必须将手放在 2 个实体集上,然后像这样阅读它。
Hand on Account and User:一对Account和User可以关联M个项目。
手把手的账户和项目:一对账户和项目可以关联M个用户。
亲身体验项目和用户:一对项目和用户可以与 1 个帐户相关联。
这些对总是一对一的关系还是可以有多少对?
迟到的答案,但可能会为未来的读者服务。
假设三元关系具有参与实体 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
我借用我在网上找到的这张图片。
导致此图像的我们的商业模式的现实是:
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
(按此顺序)。
很可能它是一个层次结构,这意味着有许多帐户和许多用户。这也意味着帐户小于或等于用户。这意味着更多的用户要记账。很可能我使用三元数据结构和尝试。
另一个迟到的答案,但可能会为未来的读者服务。但是,是的,你是正确的@user2276094。
正如您所提到的,通过将一个实体(目标实体)与其他 2 个实体隔离,并将目标实体(例如员工)与来自其他 2 个实体(例如客户和分支机构)。
因此,您可以将关系中的这些多重性(如员工在分支机构注册客户)表述为,
对于固定的员工事件和分支事件,可能有也可能没有客户(因为有些员工可能没有注册客户,他们可能参与其他职责)。
对于固定对的 Branch 事件和 Client 事件,必须只有一个 Staff(因为一个 Client 只能由一个且唯一的 Staff 成员注册一次)。
对于固定的一对员工事件和客户事件,必须只有一个(假设客户只能在一个分支机构注册)。