发 帖  
原厂入驻New
[问答]

聊天应用如何保存用户好友列表?

52 字符串 mysql
分享
做一个聊天应用练习, 碰到一个问题, 如何保存用户好友列表?
0
2020-11-5 07:08:23   评论 分享淘帖 邀请回答
1个回答
如果用mysql关系数据库做后端数据库, 那么面临两个选择:
1. 使用一个字符串, 保存所有好友信息:
查询时: 将字符串读出(查询快), 做一下类型转换(CPU消耗), 增加、修改或者删除某个好友的时候, 都要执行update该字段的操作
1. 使用外键, 在数据库中创建一个好友table, 保存所有好友信息:
[tr]idfriendIdfriendName[/tr]
Janef_id1f_name1
Tomf_id2f_name2
Jerryf_id3f_name3
Judyf_id4f_name4
查询时: 通过外键, 查询到相应的所有好友(查询相对较慢), 但是增加,修改,删除的时候比较方便, 并且还有一个更大的好处, 就是可以全局管理到所有好友信息, 可以给用户更多的推荐, QQ上共同好友/好友推荐就是通过数据挖掘搞出来的;  微信我想比较像第二种方法, 就是替用户保存一个电话本, 上面的内容在微信服务器上是没有继续深度挖掘的. 或者有保存, 但是没有在前端表现出来.
总结


  • 使用字符串保存一个friends列表, 有查询速度快的优势, 不用在另一个表中select一下, 这对于经常登陆的实际场景来说是很有用的、
  • 另外维护一个table, 带来了性能上的丢失, 但是能够获得更多关于所有用户的信息, 比如关系网, 共同好友, 等等, 这好想属于数据挖掘的范畴, 对于基本功能不是很影响. 所以可以先采用第一种字符串保存方法, 并在系统空闲的时候, 用另一个java程序挖掘好友信息, 然后在处理计算满足功能, 向用户推出相应的信息.
2020-11-5 15:34:40 评论

举报

撰写答案

你正在撰写答案

如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。

高级模式
您需要登录后才可以回帖 登录 | 注册

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容图片侵权或者其他问题,请联系本站作侵删。 侵权投诉
我要提问
关闭

站长推荐 上一条 /9 下一条

快速回复 返回顶部 返回列表