个人项目小结 (9)

·        #表名:quanzi_album_{userId}{    "_id":"5fae539d7e52992e78a3b684",#主键id    "publishId":"5fae53d17e52992e78a3db61", #发布id    "created":1568012791171 #发布时间}

时间线:所谓刷朋友圈,就是刷时间线,就是一个用户所有的朋友的发布内容。

·        #表名:quanzi_time_line_{userId}{    "_id":"5fae539b7e52992e78a3b4ae",#主键id,    "userId":2, #好友id    "publishId":"5fae53d17e52992e78a3db61", #发布id    "date":1568012791171 #发布时间}

评论:针对某个具体发布的朋友评论和点赞操作。

·        #表名:quanzi_comment{    "_id":"5fae539d7e52992e78a3b648", #主键id    "publishId":"5fae53d17e52992e78a3db61", #发布id    "commentType":1, #评论类型,1-点赞,2-评论,3-喜欢    "content":"给力!", #评论内容    "userId":2, #评论人    "publishUserId":9, #发布动态的人的id    "isParent":false, #是否为父节点,默认是否    "parentId":1001, #父节点id    "created":1568012791171}

圈子读写流程  

个人项目小结

 

 

  流程说明

·        用户发布动态,动态中一般包含了图片和文字,图片上传到阿里云,上传成功后拿到图片地址,将文字和图片地址进行持久化存储

·        首先,需要将动态数据写入到发布表中,其次,再写入到自己的相册表中,需要注意的是,相册表中只包含了发布id,不会冗余存储发布数据

·        最后,需要将发布数据异步的写入到好友的时间线表中,之所以考虑异步操作,是因为希望发布能够尽快给用户反馈,发布成功

·        好友刷朋友圈时,实际上只需要查询自己的时间线表即可,这样最大限度的提升了查询速度,再配合redis的缓存,那速度将是飞快的

·        用户在对动态内容进行点赞、喜欢、评论操作时,只需要写入到评论表即可,该表中也是只会记录发布id,并不会冗余存储发布数据

查看动态 查询好友的动态流程

·        查询时间线表

·        获取时间线列表中的发布id的列表

·        根据动态id查询动态列表

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wppjzd.html