java - 好友关系表数据的存储问题,存一条还是两条?
阿神
阿神 2017-04-18 10:33:38
0
7
667

项目中设计好友关系,存储在一张表里面
现有用户id为2和3加为好友
好友关系表:

id user_id friend_id
1 2 3
2 3 2

这两条数据是否是一样的?还是应该存为一条数据?

后续可能还会有权限相关设计
如:

id user_id friend_id 是否允许查看自己的动态 是否查看对方的动态消息
1 2 3
2 3 2

这种情况是存在一张表里面,还是将权限和好友关系分开,单独存一张权限表

阿神
阿神

闭关修行中......

全部回复(7)
迷茫

好友关系表可以存2条,毕竟存一条看着不直观,存2条查询user_id为2的好友可以select friend_id from table where user_id = 2 。 存1条的话比较麻烦些,select friend_id from table where user_id = 2 union select user_id from table where friend_id=2。对于权限表还是分开吧. 关系表就维护关系,权限表就维护权限。不要在一起,因为以后指不定还要加其他权限,弄在一张表里肯定会遇到麻烦。分开的话至少没那么麻烦。修改起来也不会影响关系表

PHPzhong

看业务需求,个人觉得细一点好

左手右手慢动作

感觉就你说的后来的需求来说 这两条数据并不一样 id为1的用户他有自己的好友 肯定不止id为2的这么一个
再者 到后李 实现别的需求的时候你写一起也不好

Peter_Zhu

依我看是有必要分开的

Peter_Zhu

两条。
1,对方是你的好友,你未必是对方的。
2,对方对你的设置和你对对方的设置未必是一致的。

如果有这两个需求。两条,需求反之,一条。

伊谢尔伦

我个经验是2条比较好。第一:你是我的好友,我未必一定是你的好友。第二:这样做查询好友太方便了,一条的话查询麻烦。

另外,我们考虑一下扩展,如果把好友改成黑名单,那么用2条的话,很容易就能扩展。毕竟我拉黑你,你未必拉黑我。

伊谢尔伦

两条吧,类似关注的那种.你关注他,他不一定关注你

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板