有效地整合1-10投票系统,没有常见的陷阱

时间:2011-10-03 05:08:03

标签: php mysql ranking bayesian voting-system

我计划将合理的排名/投票系统整合到现有的应用程序中。

我很熟悉传统的五星评级系统是如何运作的,并且知道与它们相关的common pitfalls/problems,因此想知道是否还有其他方式(我听说过威尔逊,贝叶斯等但不太确定关于如何使用以下结构实现这一点):

  • 我打算允许用户通过内容页面对1到10之间的内容进行投票。
  • 该内容的得分和总票数将显示在内容页面上。
  • 我还将展示/列出十大内容,所以我需要方法公平/现实,不要以10票表决,总票数为1直接进入第1号。

我正在使用PHPMySQL,我有一个内容表(有一个content_id,我想我可以JOIN开启。

我想知道你是否可以建议一种方法/方法来实现上述目标,如果你能附上一些示例PHP代码和示例MySQL模式,我会很感激,所以我可以更好地理解它,因为我已经google'd了并且可能已经找到了可能的解决方案,例如Wilsons和Bayesian ......但它们提供了一篇冗长的文章,其中包含令人困惑的数学方程式 - 并且没有提及实现上述目标的方法(即得分......并在PHP / MySQL中实现该方法) )或至少由于没有任何示例PHP / MySQL代码我误解了这一点。

也许这比我想的更容易 - 我不知道,因为我以前从未需要实现这种“更复杂”的排名/投票功能 - 所以我很感激你的回答。

1 个答案:

答案 0 :(得分:0)

您应首先在youtube上观看此视频:Building Web Reputation Systems

为了强调这一点,让我引导你XKCD

对于DB结构,您需要以下部分:

  • 项目列表(total_votes列)
  • 已投票的用户列表
  • 项目用户的交叉表(rating列,如果你选择5星级的话)