学习目标:
- 圈子功能说明
- 圈子技术实现
- 圈子技术方案
- 圈子实现发布动态
- 圈子实现好友动态
- 圈子实现推荐动态
- 圈子实现点赞、喜欢功能
- 圈子实现评论
- 圈子实现评论的点赞
1、功能说明
探花交友项目中的圈子功能,类似微信的朋友圈,基本的功能为:发布动态、浏览好友动态、浏览推荐动态、点赞、评论、喜欢等功能。
2、实现方案分析
对于圈子功能的实现,我们需要对它的功能特点做分析:
数据量会随着用户数增大而增大,读多写少,非好友看不到其动态内容 ……
针对以上特点,我们来分析一下:
对于数据量大而言,显然不能够使用关系型数据库进行存储,我们需要通过MongoDB进行存储
对于读多写少的应用,需要减少读取的成本 比如说,一条SQL语句,单张表查询一定比多张表查询要快
对于每个人数据在存储层面最好做到相互隔离,这样的话就不会有影响
3、技术方案
根据之前我们的分析,对于技术方案而言,将采用MongoDB+Redis来实现,其中MongoDB负责存储,Redis负责缓存数据。
3.1、发布流程
流程说明:
用户发布动态,首先将动态内容写入到发布表。
然后,将发布的指向写入到自己的相册表中。
最后,将发布的指向写入到好友的时间线中。
实现效果:
3.2、查看流程
流程说明:
用户查看动态,如果查看自己的动态,直接查询相册表即可
如果查看好友动态,查询时间线表即可
如果查看推荐动态,查看推荐表即可
4、业务实现
推荐动态是通过推荐系统计算出的结果,现在我们只需要实现查询即可,推荐系统在后面完成。
..../.......
推荐动态和好友动态的结构是一样的,所以我们只需要查询推荐的时间表即可。