Php 允许用户对评论进行一次评级

Php 允许用户对评论进行一次评级,php,mysql,ranking,rank,rate,Php,Mysql,Ranking,Rank,Rate,我有一个网站,用户可以对页面上留下的评论进行评分。每个评论都有一个唯一的ID(例如402934),如果我想让用户能够向上/向下浏览所述评论,我可以看到如何制作一个简单的计数器代码来跟踪向上和向下浏览的次数,但如何确保每个用户只对所述评论进行一次排名。我打算创建一个数据库,将每个评论编号作为一行,在这一行中有一个数组,其中包含所有对其进行排名的用户和所有对其进行排名的用户,但我觉得这不是最好的方法。我的下一个想法是为每个用户创建一个表,然后创建一个数组,显示用户所排名的所有评论。这样可能会运行得更

我有一个网站,用户可以对页面上留下的评论进行评分。每个评论都有一个唯一的ID(例如402934),如果我想让用户能够向上/向下浏览所述评论,我可以看到如何制作一个简单的计数器代码来跟踪向上和向下浏览的次数,但如何确保每个用户只对所述评论进行一次排名。我打算创建一个数据库,将每个评论编号作为一行,在这一行中有一个数组,其中包含所有对其进行排名的用户和所有对其进行排名的用户,但我觉得这不是最好的方法。我的下一个想法是为每个用户创建一个表,然后创建一个数组,显示用户所排名的所有评论。这样可能会运行得更快(例如,检查用户的150个排名与评论的6050个排名,但我仍然觉得有更好的方法……有什么想法吗?

用户id
评论id
投票TINYINT(1)
创建一个新表

vote
中的
1
值表示竖起大拇指,
vote
中的
0
值表示竖起大拇指

(注释id、用户id)
具有唯一键约束


如果您遵循上述操作,则很容易检查用户是否对特定评论进行了投票,如果您希望能够快速(如在快速执行中)查看用户所做的所有评论,还应在
用户id
中添加
索引


当用户投票时,您可以使用
REPLACE INTO
user\u comment\u thumbs
,例如:

REPLACE INTO `user_comment_thumbs` (user_id,comment_id,vote)
VALUES (@user_id, @comment_id, @vote);

如果用户已经投票,表中的条目将被更新,否则将插入新行。

使用
用户id
注释id
投票TINYINT(1)
创建一个新表

vote
中的
1
值表示竖起大拇指,
vote
中的
0
值表示竖起大拇指

(注释id、用户id)
具有唯一键约束


如果您遵循上述操作,则很容易检查用户是否对特定评论进行了投票,如果您希望能够快速(如在快速执行中)查看用户所做的所有评论,还应在
用户id
中添加
索引


当用户投票时,您可以使用
REPLACE INTO
user\u comment\u thumbs
,例如:

REPLACE INTO `user_comment_thumbs` (user_id,comment_id,vote)
VALUES (@user_id, @comment_id, @vote);

如果用户已经进行了投票,表中的条目将被更新,否则将插入新行。

@ManseUK用户很容易删除cookie。更好、更持久的解决方案是下面由refp@ManseUKcookie很容易被用户删除,这就更好了还有一个更持久的解决方案,即您可以控制的数据库解决方案,由refpSWEET描述如下:)正是我所需要的!甜心:)正是我所需要的!