我已经创建了一个评论表,但我想为Digg和Youtube等评论添加拇指向上和向下的功能,我使用php& mysql,我想知道什么是最好的表格方案来实现,所以许多喜欢的评论将在顶部。
这是我目前的评论表:评论(id,用户,文章,评论,邮票)
注意:只有注册才能投票,所以它应该在评论中限制每个用户1票
由于
答案 0 :(得分:6)
保留votes
表格。例如。投票(comment_id,user_id,value,stamp) - 值为-1或+1。
这允许问责制,您可以对(comment_id,user_id)执行UNIQUE索引以防止重复投票。如果他/她是垃圾邮件,您也可以轻松删除用户及其所有投票。
为了按分数对评论进行排序,可以在评论和投票表之间进行联接,并使用SUM / GROUP BY来获得总分。但是,这可能很慢。对于速度,您可以考虑在评论表中保留一个分数字段。每次在投票表中添加新行时,您都会从评论的分数中添加/减去1。
因为您将每个投票存储在一个表格中,所以很容易按需重新计算得分。 Stack Overflow与声誉类似 - 用户的总信誉评分经常被缓存和重新计算。
答案 1 :(得分:0)
您可以添加分数字段,并在每个拇指操作中递增或递减:
UPDATE comments SET score=score+1 Where id=123
然后当您选择时,按分数DESC排序。
答案 2 :(得分:0)
由于用户应该注册拇指向上/向下,我会存储用户ID和帖子ID以验证上/下。
2个表适用于此任务。如果您需要设计,请告诉我。