【发布时间】:2015-02-26 22:27:57
【问题描述】:
我应该在同一个表中同时拥有一个主键和一个外键吗?
例如:一对一
我有一个用户表和一个地址表。
每个用户都有一个地址。
我应该只在地址表中添加一个指向用户表中主键的外键吗?
或者我还应该在地址表中创建一个主键吗?
更新:
每个用户都可以有一个地址。因此,并非所有用户都有地址。如果用户决定输入他/她的地址。然后地址将在地址表中结束
【问题讨论】:
-
最好在每个表中都有一个主键,即使它有其他表的外键。
-
如果确实是一对一的关系,你可以把地址表的主键设为用户键。它既可以用作外键也可以用作主键,但它确实限制了架构的灵活性。
-
Composite primary key(User,Address) 在一个表中怎么样,因为你有one to one关系 -
如果用户和地址真的是1对1的,那为什么还要有地址表呢?
-
对不起,我错过了一些东西。每个用户可以有一个地址。因此,并非所有用户都有地址。如果用户决定输入他/她的地址。然后地址将在地址表中结束
标签: mysql sql database-design foreign-keys primary-key