Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/63.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 如何将三元(三元)ER图转换为二元?_Mysql_Sql_Database_Entity Relationship - Fatal编程技术网

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

Mysql 如何将三元(三元)ER图转换为二元?,mysql,sql,database,entity-relationship,Mysql,Sql,Database,Entity Relationship,该图是递归的,有三条“路线”,从一个实体集“Person”到关系类型“Parent”(因此有三条线到关系类型) 我们给出的问题是把这个三元关系分解成二元关系,假设为三元关系 我在考虑将“person”作为一个实体集,并将子实体作为另一个实体集父实体的关系类型,每个父实体集都有一个属性 有人能帮我一点忙吗?因此,如果我理解正确,每个人都有三个对父表的外键引用,您希望将其规范化 我的方法是将这种关系抽象为一个交叉引用实体,PersonParent。PersonParent将有三个字段:Person的

该图是递归的,有三条“路线”,从一个实体集“Person”到关系类型“Parent”(因此有三条线到关系类型)

我们给出的问题是把这个三元关系分解成二元关系,假设为三元关系

我在考虑将“person”作为一个实体集,并将子实体作为另一个实体集父实体的关系类型,每个父实体集都有一个属性


有人能帮我一点忙吗?

因此,如果我理解正确,每个人都有三个对父表的外键引用,您希望将其规范化

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