MySQL表格结构拇指UP& DOWN评论系统?

时间:2010-04-01 20:30:29

标签: php mysql database

我已经创建了一个评论表,但我想为Digg和Youtube等评论添加拇指向上和向下的功能,我使用php& mysql,我想知道什么是最好的表格方案来实现,所以许多喜欢的评论将在顶部。

这是我目前的评论表:评论(id,用户,文章,评论,邮票)

注意:只有注册才能投票,所以它应该在评论中限制每个用户1票

由于

3 个答案:

答案 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个表适用于此任务。如果您需要设计,请告诉我。