最近项目中碰到了一个需求:对一条新闻实现点赞功能(点赞,取消点赞,是否已点赞):
一:一开始是打算在新闻表中用一个字段来记录这条新闻的点赞总数,后面想到假设有很多人对这条新闻进行点赞和取消点赞的操作的话,没做一个操作都要进行一次数据库的读写,会比较消耗性能,所以后面转变了一下思路:设计一张中间表记录下用户id,新闻id,点赞的时候新建一条数据,取消点赞的话就删除一条数据,然后这条新闻的点赞数,是否已点赞(登录用户)就都可以得到了;点赞数的话只要根据新闻id统计下数量即可,是否已点赞:只需根据用户id,新闻id查找是否存在记录即可;我们还可以在中间表中添加一个字段source_type来表示来自哪个终端(web,wechat等),后续就可以统计各个终端的情况了;现在的中间表如下:
新闻点赞表: id 、repId(新闻id)、userId(用户id)、sourceType(来源终端);
二:现在的新闻一般下面都会有网友的评论,虽然项目暂时还无需实现这样的要求,但是我们也可以来思考一下。按照上面点赞功能的思路,评论是不是也可以借鉴一下呢?可能我们会