我读到某个地方说每个表应该有一个主键来实现1NF.
我有一个tbl_friendship表.
表格中有两个字段:所有者和朋友.
所有者和朋友的字段是tbl_user中自动增量id字段的外键.
这个tbl_friendship应该有一个主键吗?我应该在tbl_friendship中创建一个自动增量id字段并将其作为主键吗?
主键可以应用于多个列!在您的示例中,主键应位于两列上,例如(Owner,Friend).特别是当Owner和Friend是用户表的外键而不是实际名称时(个人而言,我的标识列使用"Id"命名约定,因此我会拥有(OwnerId,FriendId)
我个人认为每张桌子都应该有一个主键,但你会发现其他人不同意.
这是我写的关于普通形式主题的文章. http://michaeljswart.com/2011/01/ridiculously-unnormalized-database-schemas-part-zero/