参考:http://t.zoukankan.com/hujingnb-p-12389810.html

本人对上述功能进行增强,性能优化

需求:

  1. 发朋友圈
  2. 评论动态
  3. 查看朋友圈(只能查看好友的)
  4. 查看评论(只能查看共同好友的)
  5. 新消息小红点
  6. 局部用户可见
  7. X天可见

DB表设计

全局朋友圈表:id、发布人id、发布时间、朋友圈内容、点赞数(可不要)、评论数(可不要)

全局评论表:朋友圈id、回复人id、评论人id、评论内容、评论时间、上次刷新时间

个人独立收件箱:朋友圈id、发布人id、发布时间、上次刷新时间

个人独立评论表:朋友圈id、回复人id、评论人id、评论内容、评论时间、上次刷新时间

Redis:用户受众人:

查看朋友圈

  1. 朋友圈动态查找可以查看的动态(包含用户ID和公共ID)
  2. 朋友圈评论查看相关评论(包含用户ID和公共ID)
  3. 动态表和评论表根据ID将相关数据取出

前两步走索引, 第三步直接根据主键获取, 而且拿出来的没有无用数据

数据维护的操作(一下所有操作官方特判)

发动态

  1. 查找用户所有好友
  2. 将动态添加到所有好友的朋友圈动态表中(包括用户自己)

删动态

  1. 查找用户的所有好友
  2. 将动态从好友的朋友圈动态表中删除
  3. 将动态从好友的朋友圈评论表中删除

发评论

  1. 查找用户的所有好友A
  2. 朋友圈动态中找出A可以查看此动态的好友B
  3. 若评论是回复某用户, 则从B中过滤不是回复用户好友的用户, 得到C
  4. 将数据添加到C朋友圈评论表中

删评论

  1. 查找用户的所有好友A
  2. 朋友圈评论中找出A中可以查看此评论的用户B
  3. 删除B朋友圈评论数据

添加好友

  1. 找到好友的所有动态, 添加到用户的朋友圈动态
  2. 找到好友在用户朋友圈动态中所有动态下的相关评论(包括评论和被评论), 并从中过滤掉用户不可查看的评论, 同步好友圈评论

删除好友

  1. 找到好友在用户朋友圈动态中所有动态下的相关评论, 删除用户好友圈评论数据
  2. 找到好友的所有动态, 从用户的朋友圈动态中删除
特殊说明:
上述文章均是作者实际操作后产出。烦请各位,请勿直接盗用!转载记得标注原文链接:www.zanglikun.com
第三方平台不会及时更新本文最新内容。如果发现本文资料不全,可访问本人的Java博客搜索:标题关键字。以获取全部资料 ❤