0

我正在为我的网站建立一个朋友系统。我正在考虑只制作 2 行,在每行上添加一个索引并将它们设为usersid列的外键。如果其中任何一个用户被删除,我希望它们被删除。然后将有每个用户的记录。

user_id
friend_id
  1. 问题:您认为包含主键有什么理由吗?

  2. 问题:将外键设置为级联时,外键是否会起到上述作用?

如果您有任何其他建议或专栏建议,我也想听听(:(我不需要知道友谊是什么时候开始的)

谢谢!

4

1 回答 1

1

绝对你需要一个主键。在这种情况下,最好在两列上使用复合主键。没有它,您的查询将比应有的速度慢得多,并且您将无法强制执行朋友对的唯一性。

您应该考虑的另一件事是朋友关系是单向关系还是双向关系。换句话说,您是否需要能够在任一方向(从任一用户开始)查找好友关系。如果是这样,您可能需要为每个朋友关系在该表中插入两行。

关于级联删除,您需要确保在两列上都设置了这样的级联,以便在用户表中删除用户,它将删除关系表中该用户是用户的所有行或朋友。

于 2013-05-07T15:50:41.543 回答