为了账号安全,请及时绑定邮箱和手机立即绑定

关系型数据库中好友关系实现的最佳方案是什么?

关系型数据库中好友关系实现的最佳方案是什么?

慕婉清6462132 2019-02-25 04:36:32
社交类应用中,每用户与多个好友存在好友关系,设计的最佳方案是什么的呢?数据库白痴求助。 我目前想到的表设计是这样的: CREATE TABLE friend_list ( id INT PRIMARY KEY, user_id INT, friend_id INT, ); 假设有两个用户user_1, user_2 创建好友关系是: INSERT INTO friend_list (user_id, friend_id) VALUES ({user_1.id}, {user_2.id}), ({user_2.id}, {user_1.id}); 解除好友关系是: DELETE FROM friend_list WHERE (id = {user_1.id} or id = {user_2.id}); 这样可以吗?总觉得怪怪的。 这种方案下,好友请求这种功能会变得十分复杂,不能有一条简单的SQL语句完成。
查看完整描述

5 回答

?
一只名叫tom的猫

TA贡献1906条经验 获得超3个赞

只要一个用户关系表就行了;

字段:uidf_uid;且两个都为主键。无需ID自增长字段

  • uid为用户ID

  • f_uid为好友ID


说明:

  • 以上关系,如A与B为好友,那需要有2条记录。

  • 如果只是A单方面解除好友关系,只需要删除uid = A;B同理

  • 如果A、B互相删除,那两条记录同时删除

查看完整回答
反对 回复 2019-03-01
  • 5 回答
  • 0 关注
  • 936 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号