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

时间:2013-08-21 19:20:34

标签: model entity-relationship relationship ternary

我不太确定如何阅读ER图中的三元关系。 让我们说这是给出的三元关系。 我能从中解释出什么?

account-user-project three-way relation

它说你必须把手放在2个实体集上,然后就这样阅读。

交易账户和用户: 一对帐户和用户可以与M个项目相关联。

交易账户和项目: 一对帐户和项目可以与M个用户相关联。

交给项目和用户: 一对项目和用户可以与1个帐户关联。

这些对总是处于一对一的关系中,还是有多少对?

3 个答案:

答案 0 :(得分:23)

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

假设三元关系具有参与实体A,B和C(对于度数> 3,它变得非常毛茸茸)。

阅读关系的方法是始终隔离3个参与实体中的2个,看看它们与第三个实体的关系。你需要为所有可能的配对做到这一点。

更确切地说:每次配对的2个实体需要被认为是每个实体的“一个”,要回答的问题是第三个实体中的“多少”可以对应于这一对。 / p>

抽象例子

"One of A and one of B can {have/associate with/belong to} X? of C"。如果X?应为1N,我们需要使用我们的商业模式知识来回答。这是在边缘上分配三元关系的基数,该三元关系将三元关系与实体C连接起来。

这个短语必须针对所有可能的组合进行改革(不是排列,因为配对顺序无关紧要)。因此,回答问题How many pairs are there?,简单的数学表明将2个组合成3个事物的可能方法是:

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

enter image description here

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

  • 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关系(按此顺序)。

答案 1 :(得分:0)

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

答案 2 :(得分:0)

另一个较晚的答案,但可能会为将来的读者服务。但是,是的,您是正确的@ user2276094。

正如您所提到的,通过将一个实体(目标实体)与其他2个实体隔离,并将目标实体(例如Staff)与来自其他2个实体的固定对关联,来设计三元关系中的多重性实体(例如客户和分支机构)。

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

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

对于分支事件和客户事件的固定对,必须只有一个职员(因为一个职员只能由一个职员注册一次)。

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