机器人论坛
直播中

彭瑾

7年用户 179经验值
私信 关注
[问答]

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

做一个聊天应用练习, 碰到一个问题, 如何保存用户好友列表?

回帖(1)

赵阳

2020-11-5 15:34:40
如果用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程序挖掘好友信息, 然后在处理计算满足功能, 向用户推出相应的信息.
举报

更多回帖

发帖
×
20
完善资料,
赚取积分