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

它说你必须把你的手放在两个实体集上,然后像这样读它。
手头账号和用户:一对账号和用户可以关联M项目。
账号和项目:一对账号和项目可以关联M个用户。
手把手项目和用户:一对项目和用户可以关联一个帐户。
这些对是否总是一对一的关系,或者可以有多少对?
发布于 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 Treatments1 Physician logs 1 specific Treatment for N Patients1 Patient is logged 1 specific Treatment by 1 Physician因此,三元关系log是参与实体Treatment-Patient-Physician之间的M-N-1关系(按此顺序)。
发布于 2013-08-22 04:24:33
它很可能是一个层次结构,这意味着有许多帐户和许多用户。这也意味着帐户小于或等于用户。这意味着有更多的用户需要注册。最有可能的是,我使用了三元数据结构。
发布于 2018-10-26 21:56:12
这是另一个迟来的答案,但可能会服务于未来的读者。但是,是的,你是正确的@user2276094。
正如您所提到的,三元关系中的多重性是通过将一个实体(目标实体)与两个其他实体隔离,并将目标实体(例如员工)与来自两个其他实体(例如Client和Branch)的一次出现的固定对相关联来设计的。
因此,您可以将关系中的那些多重性(比如员工在分支机构注册客户)表述为,
对于一对固定的员工事件和分支事件,可能有客户,也可能没有客户(因为一些员工可能不注册客户,他们可能涉及其他职责)。
对于分支实例和客户端实例的固定对,必须有且仅有一个工作人员(因为一个客户只能由一个且仅有一个工作人员注册一次)。
对于固定的人员事件和客户端事件对,必须存在且仅有一个(假设客户端只能在一个分支机构注册)。
https://stackoverflow.com/questions/18365870
复制相似问题