我正在试图弄清楚如何开始在MYSQL中设置贝叶斯评级系统。我没有使用5星评级,但类似的东西。我将是一个5卷的酒吧。
这是我的专辑页面。用户不会对专辑进行评级,而是会对将平均成为专辑评级的歌曲进行评分。
$songsum
$songavg
$numofrated
$totalsongs
$albumrating
$songsum / $numofrated = $songavg
$songavg * ($numofrated / $totalsongs) = $albumrating
另一页(艺术家页面)也将被评级。
$avg_num_votes = 18; // Average number of votes in all products
$avg_rating = 3.7; // Average rating for all products
$this_num_votes = 6; // Number of votes for this product
$this_rating = 4; // Rating for this product
$bayesian_rating =
( ($avg_num_votes * $avg_rating) + ($this_num_votes * this_rating) )
/ ($avg_num_votes + $this_num_votes);
我该如何开始设置? $this_rating
应该与专辑在同一个表格中吗?
<小时/> 其他信息
答案 0 :(得分:1)
您对评级方案的初步想法可能会发生变化(特别是对于专辑),因此您最好存储交易信息,这样您就可以随时重新计算所有内容。
在“歌曲”和“用户”中创建一个名为“评级”的新表:
由于你有song_id,因此没有必要使用album_id,但它会节省一些时间并且磁盘空间便宜
将以下字段添加到数据库中:
定期运行一个脚本,将summary_字段更新为您想要的字段。