我正在为我的网站建立一个朋友系统。我想只制作2行,在每个行上添加一个索引,并将它们作为users
表id
列的外键。如果删除了其中一个用户,我希望删除它们。然后会有每个用户的记录。
user_id
friend_id
问题:您是否认为有任何理由要包含主键?
问题:将外键设置为级联时,外键是否会起作用?
如果您有任何其他建议或专栏建议,我也想听到(:(我不需要知道友谊何时开始)
三江源!
答案 0 :(得分:1)
绝对需要主键。在这种情况下,最好在两列上使用复合主键。没有它,你的查询将比它们应该慢很多,你将无法强制执行朋友对的唯一性。
你应该考虑的另一件事是朋友关系是单向关系还是双向关系。换句话说,您是否需要能够在任一方向查找朋友关系(从任一用户开始)。如果是这样,您可能需要为每个朋友关系在该表中插入两行。
关于级联删除,您需要确保在两个列上设置这样的级联,以便在users表中删除用户,它将删除该用户所在的关系表中的所有行无论是用户还是朋友。