如何将三元(三元)ER图转换为二进制?

时间:2012-09-26 02:43:05

标签: mysql sql database entity-relationship

该图是递归的,有三条“路线”,从一个实体集“Person”变为一个关系类型“Parent's”(所以有三条线路进入关系类型)。

我们给出的问题是采用这种三元关系并将其分解为二元关系,假设为三元。

我正在考虑将'person'作为一个实体集,让孩子成为另一个实体的关系类型,为每个父母设置一个属性。

有人可以稍微帮助我吗?

1 个答案:

答案 0 :(得分:1)

因此,如果我理解正确,每个Person都有三个对Parent表的外键引用,并且你想要将其标准化。

我的方法是将这种关系抽象为交叉引用实体PersonParent。 PersonParent将有三个字段:Person的ID,Parent的ID,以及此Parent对Person的“父类型”(对于旧模式中的三个引用中的每一个,该字段中隐含了最后一位信息)。对于很多人来说,Parent可以是这样,但是一个Person只能在0和有限N(可能是3)个Parent之间,通过将PersonID和ParentType的组合指定为唯一,并指定有效ParentType的最大数量。 ParentType可以是对包含这些类型的实体的引用,也可以将有效值构建为检查约束(我强烈推荐前者)。