让我们说我有一个MySQL表是这样的:

软件表:

id int
name text
votes int
rating int

在哪里投票将投票支持该项目的时间的人的数量和等级将是这些选票的平均水平。

实施例的数据:

id: 0
name: FooBar!
votes: 5
rating: 3

现在其他用户一起和价格这个而来的,是1.我将如何caculate新的评价?会是更好的只是让另一个表,并进入一个新行每票的人喜欢

时间
id int
software_id int
score int
user_id int

和然后计算每次重新计算的平均评分?我认为这将需要在服务器上收费。

第二个问题:

我希望能够通过收视率最高的,但我不想平均5星评级的程序,但只有1票,平均为4 893票对订购软件排名比计划更高。我将如何做到这一点?

有帮助吗?

解决方案

问题1A:如何计算新的平均评分:

vote count : 5
average rating: 3

新的投票与一个评级

             5*3+1
 new rating= ----- = 16/6 = 8/3 = 2.666.. 
               6

您必须采取的新投票“权重”(占所有投票1/6)和旧平均值(5个OCCURENCES出的6)考虑..旧平均3计数5倍,新的评级一次=> 5 * 3 + 1 = 16。然后,通过总的接收到的6个投票分裂。

问题1B:如果您存储票

真的,如果你希望成为gamedor不依赖

我建议你这样做。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top