如何使mysql结构向上,向下评级

时间:2010-02-15 20:47:35

标签: sql mysql

这里的每个程序员都知道这样的评级:
Rating system http://img69.imageshack.us/img69/4241/98948761.gif

问题在于我不知道如何为此创建SQL结构。

我想我可以在MySQL的article表中添加上下字段,但这不允许多投票。

你能告诉我怎么做吗? 我是否必须创建一个新表?

2 个答案:

答案 0 :(得分:2)

最简单的方法是简单地存储每篇文章的投票结果 当一篇文章被投票时,增加计数器。投票 - 减少计数器。

如果您需要跟踪哪个用户上/下投票(并避免多次投票),您需要在usersarticles之间定义一个交叉表。

看起来像这样:

article_votes
--------------
user_id
article_id
vote

其中,投票可以是+1或-1。

如果您需要文章的要点,可以通过

获得
SELECT SUM( vote )
FROM article_votes
WHERE article_id = <your_article_id> 

答案 1 :(得分:2)