将外键作为子表中的主键

时间:2011-02-01 01:12:44

标签: mysql database-design rdbms

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

是否可以将Child表上的Foreign键作为同一子表上的主键。

正在通过DBMS工作,并希望对这些类型的设计有专家意见。

有什么优点和缺点?

2 个答案:

答案 0 :(得分:6)

如果您的意思是一个父行映射到许多子行,那么您将无法执行此操作。主键值带有唯一的键约束;如果您需要多个子行来引用同一个父项,则将外键引用设置为主键将禁止该行,因为您将无法使用相同的外键引用来存在多个行。

答案 1 :(得分:4)

那会创建一个1:0-1的关系,而不是1:0-n,因为定义了将孩子与父母联系起来的外键,因为孩子的主键会阻止你有一个以上的孩子。相同的父键。