【发布时间】:2011-10-06 15:20:10
【问题描述】:
我目前正在开发一个社交网站。 (是的,我知道,有一大堆。我不想让 Facebook 彻底崩溃)
我想知道是否有人能告诉我我的思维方式是否有问题,或者它是否真的是这样。
我希望用户能够有朋友。而且,为此,我认为我应该有一个这样的用户表: 用户
- uId
- 用户名
- 电子邮件
- 等等..
这应该是 1:N 的关系,所以我认为“联系人”表应该包含用户及其朋友的列表,如下所示: 联系方式
- uId(来自用户)
- FriendId(来自 USER 表)
- 友谊类型 ENUM[Active, Inactive, Pending]
根据 uId 对该表进行排序是否是一种有效的解决方案,以便查询结果类似于以下内容:
用户名 |朋友ID
1 | 2
1 | 6
1 | 97
75 | 1
75 | 34
等
或者有什么不同的解决方案?
【问题讨论】:
-
您能否解释一下“对这张表进行排序是否是一种有效的解决方案...”的意思。更具体地说,你为什么要对数据进行排序?您是否正在查询表并返回具有不同 uID 的大量行?
-
我想知道这是否是选择与给定 uId 关联的朋友的有效方法,或者随着表变大,这是否会对数据库造成很大的负担?如果是这样,有没有更好的查询方法?
-
这取决于你的需要,如果你想获得与特定用户相关的记录是可以的,但作为排序点,如果表中的记录增加,对记录进行排序需要时间。
标签: mysql database-design social-networking