我将在php列表中设计我的黑名单和最喜欢的,用户可以黑名单和最喜欢的其他人,现在我只想知道这样设计是不是更好

+-----+------+------------+
| uid(pk) | name | family |
+-----+------+------------+

另一个这样的表是复合主键
+-----+------+------------------------+
| uid(pk) | blacklisted_person_id(pk) |
+-----+------+------------------------+

或者是带主键和外键的desgin,我不知道该怎么设计,在这种情况下,用户不能把自己列入黑名单,也不能把别人列入黑名单2次,如果有人能描述一下,我会感激的。
提前谢谢

最佳答案

您的解决方案很好,但我建议您只调用用户表中的PK而不调用,然后在映射黑名单表中将其称为id(如果用户是用户表的名称)和uid。这样就不会对这些独立列是哪个表的外键产生歧义。
这是一个很好的解决方案,因为它可以防止输入重复项,而无需创建额外的唯一组合键。

关于php - 哪个是更好的合成pk或在黑名单设计中使用自然键,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13650807/

10-11 07:21