基础分析
第一步,有一张用户表,表内包含用户的基本信息,比如账号、姓名、性别等信息。这里用tb_user表示用户信息表。
ID用户名
1张三
2李四
3王五
4赵六
第二步,需要将用户与用户直接建立好友关系。这里有两种情况:单向好友关系、互为好友关系。
- 单向好友关系就是张三在李四的好友列表中,但李四没有在张三的好友列表中;
- 互为好友关系,如果张三和李四为好友,则双方都在彼此的好友列表中;
好友关系设计
无论上面两种关系的哪一种,好友关系表都可以使用下面的设计,表tb_friend:
IDuser_idfriend_id
112
213
示例中,张三拥有李四和王五两个好友。
单向好友模式
如果是单向好友模式,那么两个人互为好友关系则插入的数据应该是这样:
IDuser_idfriend_id
112
221
也就是张三是李四的好友,李四也是张三的好友。此时使用sql语句查询时只用限定user_id作为条件即可查询出用户的好友列表:
select * from tb_friend where user_id = 1
1
互为好友关系
因为是互为好友关系,则只需要插入一条数据即可。对应的查询语句为:
select * from tb_friend where user_id = 1 or friend_id = 1
1<