Mysql 在子表中有一个外键作为主键

Mysql 在子表中有一个外键作为主键,mysql,database-design,rdbms,Mysql,Database Design,Rdbms,在父表和子表之间的一对多关联中 可以将子表上的外键作为同一子表上的主键吗 我只是通过数据库管理系统工作,希望专家能对这些类型的设计发表意见 优点和缺点是什么?如果您的意思是一个父行映射到多个子行,那么您将无法做到这一点。主键值带有唯一的键约束;如果需要多个子行引用同一父级,则将外键引用设置为主键将不允许这样做,因为不能有多行具有相同的外键引用。这将创建1:0-1关系,而不是1:0-n,因为将子项与父项关联的外键定义为子项的主键会阻止您拥有多个具有相同父项的子项。我感到困惑。如果关系是一对多,则子

在父表和子表之间的一对多关联中

可以将子表上的外键作为同一子表上的主键吗

我只是通过数据库管理系统工作,希望专家能对这些类型的设计发表意见


优点和缺点是什么?

如果您的意思是一个父行映射到多个子行,那么您将无法做到这一点。主键值带有唯一的键约束;如果需要多个子行引用同一父级,则将外键引用设置为主键将不允许这样做,因为不能有多行具有相同的外键引用。

这将创建1:0-1关系,而不是1:0-n,因为将子项与父项关联的外键定义为子项的主键会阻止您拥有多个具有相同父项的子项。

我感到困惑。如果关系是一对多,则子表不能将父id用作主键,因为会有重复项。如果子表上的主键包含一些其他键,以便使其成为复合键,那么它将工作。感谢您的回答!按好按钮!非常感谢!所以,只是重复一下。这种设计只有在1:1关系的情况下才有效,正如
Adam Robinson
所解释的那样?@Jasdeep:准确地说,1:0-1,而不是1:1(1:1关系不可能在数据库中实施,因为双方必须同时创建,这是不可能的)