好友列表:关系数据库表设计

hun*_*aub 3 database-design relational-database jointable

所以,好友列表的现代概念:
假设我们有一个名为Person的表.现在,那个人需要有很多好友(其中每个好友也属于人类).构建关系最明显的方法是通过连接表.即

buddyID   person1_id   person2_id
0         1            2
1         3            6
Run Code Online (Sandbox Code Playgroud)

但是,当用户想要查看他们的好友列表时,该程序必须检查列'person1_id'和'person2_id'以找到他们所有的好友.

这是实现这种表的适当方式,还是两次添加记录更好..即

buddyID   person1_id   person2_id
0         1            2
1         2            1
Run Code Online (Sandbox Code Playgroud)

因此只需要搜索一列.

提前致谢.

cle*_*tus 5

这里有几种可能的情况.

首先,您需要确定好友关系是否可以是一种方式.A人可以成为B的伙伴而B不是A的伙伴吗?我不会假设,但值得明确.

常识会建议您查询的内容多于更新关系.因此,为此优化您的数据.在创建伙伴关系时,创建两个recrods:A到B,B到A.这将使查询变得微不足道.所以,是的,按照你已经考虑过的两个记录.