【发布时间】:2011-03-01 20:27:57
【问题描述】:
我有一个 MySQL 数据库,用于存储每个用户的数据。
我想为每个用户添加一个朋友列表。我应该为数据库中的每个用户创建一个朋友表还是有更好的方法?
【问题讨论】:
-
友谊是双向的还是单向的?如果皮特是玛丽的朋友,是否总是意味着玛丽也是皮特的朋友?
-
另请注意,您想要的名称是“交叉表”或“查找表”。如果您熟悉数据库概念,它是多对多表,因为用户可能有很多朋友,也可能与其他人有很多朋友。另请注意,使用此样式,用户可以有一个不是朋友的朋友回来。还有其他方法,但这是最容易实现的。也许更多关于您的交友业务逻辑会有所帮助? @Juha Syrjälä 打败了我!
-
好友是单向的,必须已经存在于数据库中。这只是您认识的人的提醒列表。
-
还要注意我关于索引的回答中的 cmets - 没有什么复杂的要求,但您需要添加正确的以保持对较大卷的快速访问(您最终会得到耗时的完整表否则扫描) - 所以不要忽视它们。
标签: mysql database-design data-modeling