我正在为我的网站制作一个 friend 系统。我正在考虑只制作 2 行,在每行上添加一个索引,并将它们作为 users
表 id
列的外键。如果其中任何一个用户被删除,我希望将它们删除。然后每个用户都会有一条记录。
user_id
friend_id
问题:您认为有什么理由需要包含主键吗?
问题:将外键设置为级联时,外键是否会按上述方式发挥作用?
如果您有任何其他建议或专栏建议,我也想听听(:(我不需要知道友谊何时开始)
谢谢!
最佳答案
您绝对需要一个主键。在这种情况下,最好在两列上使用复合主键。如果没有它,您的查询将比应有的速度慢得多,并且您将无法强制好友对的唯一性。
您应该考虑的另一件事是 friend 关系是单向关系还是双向关系。换句话说,您是否需要能够在任一方向查找好友关系(从任一用户开始)。如果是这样,您可能需要为每个 friend 关系在该表中插入两行。
关于级联删除,您需要确保在两列上都设置了这样的级联,以便在用户表中删除用户时,它将删除该用户所在关系表中的所有行用户或 friend 。
关于mysql好友系统、索引、外键、主键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16423199/