我该如何在我的网站上实施一个“喜欢”的柜台? (不是Facebook)

时间:2014-01-07 15:42:38

标签: php mysql

在我的网站中,用户可以发布提交内容,我希望其他用户能够做到与我的“喜欢”相同的内容。

但我不知道如何实现这一点。我的主要问题是我需要防止用户多次喜欢同一件事。

我计划在每个提交的数据库条目中添加一个长字符串,例如“userid:rating / userid:rating / userid:rating”。但我认为这样效率非常低,因为每当有人按下按钮时我都需要解析字符串,如果有很多评级,那么我认为它必须做很多工作。

我是否应该为全局评分制作单独的表格,并使用提交ID将它们链接到正确的内容,或者什么?我觉得让mysql挖掘整个数据库并在每次有人打开提交页面时查找所有具有匹配ID的评级条目都是非常低效的...

1 个答案:

答案 0 :(得分:2)

您创建另一个表:submission_rating。三列就足够了:ratingsubmission_iduser_id

有人按下,你做INSERT。但是,在执行插入操作之前,请检查此特定用户是否已经喜欢此提交。如果用户有,则删除之类似。如果没有,则插入评级。

编辑:正如下面两位绅士建议的那样,不要依赖另一张支票,而是选择UNIQUE索引。确保捕获错误并在尝试插入时正确显示错误。大胆地说,if(!$insert) {}