【发布时间】:2011-02-01 01:12:43
【问题描述】:
在父表和子表之间的一对多关联中。
是否可以将子表的外键作为同一个子表的主键。
我只是通过 DBMS 工作,并希望获得有关此类设计的专家意见。
优点和缺点是什么?
【问题讨论】:
-
我很困惑。如果关系是一对多的,则子表不能使用父 id 作为主键,因为会有重复。如果子表上的主键包含其他键,以使其成为复合键,那么它将起作用。
标签: mysql database-design rdbms
在父表和子表之间的一对多关联中。
是否可以将子表的外键作为同一个子表的主键。
我只是通过 DBMS 工作,并希望获得有关此类设计的专家意见。
优点和缺点是什么?
【问题讨论】:
标签: mysql database-design rdbms
如果您的意思是一个父行映射到多个子行,那么您将无法做到这一点。主键值带有唯一键约束;如果您需要多个子行来引用同一个父行,则将外键引用设置为主键将不允许这样做,因为您将无法拥有多个具有相同外键引用的行。
【讨论】:
Adam Robinson解释的一对一关系的情况下才有效?
这将创建一个 1:0-1 的关系,而不是 1:0-n,因为将孩子与父母相关联的外键定义为孩子的主键会阻止您拥有多个孩子相同的父键。
【讨论】: