我是否应该在同一个表中都有主键和外键?
例如:一对一
我有用户表和地址表。
每个用户都有一个地址。
我是否只应在地址表中添加指向用户表中主键的外键?
或者我应该在地址表中创建主键吗?
更新
每个用户都有一个地址。因此,并非所有用户都有地址。如果用户决定输入他/她的地址。然后地址将在地址表
中结束答案 0 :(得分:1)
正如我在评论中所说的那样,第一个问题是,如果它们真的是1对1,你根本需要一个地址表?
除此之外,我会改变这种关系。你声明:Each User has one address.
如果这是对模型的准确描述,则User表应引用地址表,而不是相反。地址可以拥有多个用户。因此,用户表将具有指向地址表的外键列。
关于其他评论和答案,我同意几乎每个表都有一个主键是一个很好的做法。当然有例外,但这是一个很好的经验法则。
答案 1 :(得分:0)
我建议你在每个表中使用主键。它可能发生,而不是2个用户住在同一栋房子里。为了安全......
答案 2 :(得分:0)
所有表都应该有一个主键。外键指向另一个表中的主键以建立关系。