MYSQL按评级逻辑和意见排序内容?

时间:2012-04-14 07:51:20

标签: php mysql sorting rating

我正在设计一个网站,不知道如何根据逻辑对系统进行评级。

结果是我想要一张拥有1000张选票的4颗星的物品排名高于1票5星的物品。但是,我不希望1星(1000票)的项目排名高于4星和200票的项目。

任何人对如何做有任何想法或建议?

我发现了这两个问题

Sorting by weighted rating in SQL?

MySQL Rating System - Find Rating

并且他们有自己的缺点,在第一个我不明白获胜者意味着什么“如果你有很多评级,你可能希望将这个评级值归一化为性能原因。”请分享一些见解?谢谢!

2 个答案:

答案 0 :(得分:1)

这是一个这样一个系统的快速草图,它通过为每个标志号定义奖励因子xₙ来工作。根据你想要的问题:

x₄*4*1000 > x₅*1*5

x₁*1*1000 < x₄*4*200

将因子设置为x₁=1x₄=2x₅=2会满足这一要求,但您当然希望对其进行调整并添加缺失的因素。

答案 1 :(得分:1)

他的意思是,您应该将评级数据放入事件表(因此具有冗余数据)以优化其性能。

请参阅wiki for Denormalization:http://en.wikipedia.org/wiki/Denormalization

您必须确定项目等级的数据是:

  • 平均评分
  • 评分数

困难的部分可能是制定排名规则。赞:如果项目的平均评分&gt; 4和等级数&lt; 4对待它就像评级3.9

为方便起见,我会把这个值(如何处理排名中的项目)放在项目表中。