在我的网站中,用户可以发表意见,我希望其他用户能够执行相当于 Facebook 的“点赞”操作。
但是我不知道如何实现这个。我的主要问题是我需要防止用户多次喜欢同一件事。
我计划在每次提交的数据库条目中添加一个长字符串,例如“userid: rating/userid: rating/userid: rating”。但我认为这效率非常低,因为每次有人按下按钮时我都需要解析字符串,并且如果有很多评分,那么我认为它必须做很多工作。
我应该为全局评级创建一个单独的表,并使用提交 ID 将它们链接到正确的内容,还是什么?我觉得让 mysql 挖掘整个数据库并在每次有人打开提交页面时查找具有匹配 ID 的所有单独评分条目是非常低效的...
最佳答案
您创建另一个表:submission_ rating
。三列就足够了: rating
、submission_id
和 user_id
。
有人按下类似的按钮,您执行INSERT
。但是,在执行插入之前,您需要检查该特定用户是否已经喜欢此提交。如果用户有,您就删除类似的内容。如果没有,请插入评级。
编辑:正如下面两位先生建议的那样,不要依赖其他检查,而是选择 UNIQUE
索引。确保在尝试插入时捕获错误并正确显示它。大胆地说,if(!$insert) {}
。
关于php - 我应该如何在我的网站上实现 "like"计数器? (不是 Facebook ),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20975810/