当前位置:Gxlcms > PHP教程 > 该如何来开发这个喜欢的功能呢?

该如何来开发这个喜欢的功能呢?

时间:2021-07-01 10:21:17 帮助过:13人阅读


用php开发这个喜欢的功能,如何做到点击喜欢可以实现记录谁喜欢的,再点击的时候可以取消喜欢呢?新手求教思路。

回复内容:


用php开发这个喜欢的功能,如何做到点击喜欢可以实现记录谁喜欢的,再点击的时候可以取消喜欢呢?新手求教思路。

楼上的回答就差不多了,补充一下:

  1. 在文章表里应该有这么个字段,like_num,dislike_num这两个字段分别记录喜欢和不喜欢的人数,方便取值(题主贴的喜欢和评分差不多也是一样的道理);

  2. 接下来的就和上面差不多了,点赞和评论做记录,以便判断用户是否有过此类型的操作。

你应该建议一个like表
字段至少应该包括:文章id,uid,islike
当用户点击“喜欢”的时候,先去查一下这个用户在这个文章下有没有点击过“喜欢”,如果有,就提示用户“已经喜欢过了”,如果没有,就把相关信息写入表中。

这种工作,可以先用nosql来做,比如redis,点击喜欢了就放入redis的一个队列中,取消了就从队列移除,最后某个时间段统一写进数据库,能做到快速响应

用户喜欢这个行为记录起来,下次点击的话根据检索来判断此次行为是喜欢还是取消喜欢。

文章表 aid content
文章用户关系表(rel_table) id aid userid like
用户表 userid

用户觉得文章1不错,点喜欢:文章用户关系表添加1条记录
取消喜欢可以把like标记为0(update rel_table set like=1 where aid=1 and userid=1190 )
通过关系表能知道这个用户是否喜欢这篇文章,(select like from rel_table where aid=1 and userid=1190)
也能知道自己喜欢的文章有哪些(select * like from rel_table where userid=1190)

刚好前不久做了这样的一个功能,思路如下:
首先建一个用户行为记录表,主要包括用户的id和点赞文章的id,还有个status,用户点击一下,状态改改成1,取消了就改成0,下次再点赞了,就改成1
其次,建立一个文章extend额外表,里面用来记录一些数据,比如点赞啊,评论数量啊等,然后用户每每操作一次在extend表里面也操作对应的数据即可,然后文章打开之后再根据status能不能找到或者status的状态来判断是否喜欢过

人气教程排行