我不太确定如何阅读ER图中的三元关系。 让我们说这是给出的三元关系。 我能从中解释出什么?
它说你必须把手放在2个实体集上,然后就这样阅读。
交易账户和用户: 一对帐户和用户可以与M个项目相关联。
交易账户和项目: 一对帐户和项目可以与M个用户相关联。
交给项目和用户: 一对项目和用户可以与1个帐户关联。
这些对总是处于一对一的关系中,还是有多少对?
答案 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?
应为1
或N
,我们需要使用我们的商业模式知识来回答。这是在边缘上分配三元关系的基数,该三元关系将三元关系与实体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。
导致此图像的商业模式的现实是:
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只能在一个分支机构注册)。