三元和二元 ER 关系

Ternary and binary ER relationships

我无法理解像这样的三元关系之间的区别:

和像这样的多个二元关系(如果是的话):

根据我一直在阅读的内容,我认为它必须做一些有限制的事情?如果有人能清楚地向我解释其中的区别,我将不胜感激。

三元关系是3个元素之间的单一关系,例如:

enrollment (student PK, subject PK, teacher PK)

在这种情况下,注册特定科目的学生必须向教授该科目的老师注册。一个老师可以教多个科目,多个科目也可以由多个老师教,所以我们不能从另一个推导出任何一个。

对这种情况建模的另一种方法可能是定义 classes。每个class属于一个特定的学科和老师,用于招收学生,例如:

class_teacher (class PK, teacher)
class_subject (class PK, subject)
class_student (class PK, student PK)

这样,三元关系就分解成了3个二元关系。这不等同于上面的注册关系 - 以前我们不能在不包括学生的情况下将科目与教师联系起来。

在某些情况下,分解这样的关系可能很有用,在其他情况下则不然。作为数据建模者,您可以决定如何最好地描述情况。