小编Chr*_*vel的帖子

基于“对战”风格对决的排名?

假设我有一个应用程序,它从项目池中向用户呈现两个随机结果。用户选择一个作为“赢家”,结果将被记录如下:

INSERT INTO results (winner_id, loser_id) VALUES (26, 45);
Run Code Online (Sandbox Code Playgroud)

使用结果表对项目进行排名的最佳方法是什么?

这个问题有一个理论/主观成分,也就是说,考虑对它们进行排名的方法不止一种。

例如,这与棒球赛季没有太大区别。棒球只是通过比较获胜百分比来选择获胜者。但是在棒球比赛中,您可能会以比底特律更好的胜率击败克利夫兰,但底特律今年每次比赛都击败了克利夫兰。所以从胜率之外的另一个角度来看,你可以说底特律比克利夫兰更好。

这是我感兴趣的另一个观点。如果你从两个项目(A 和 B)开始,从结果表中知道 B 击败 A 30 次,输了 5 次,你知道 B 应该排在 A 之上。然后你看看 C,对 B 是 8-10,对 A 是 12-6,把它放在 B 和 A 之间。等等。

似乎我在描述一个相当简单的公式,但是当您开始扩展它时,对于大量项目来说,它的计算量似乎会变得非常繁重,而对于不属于两个项目之间的项目来说,这将是有问题的根据到目前为止的排名,预计它会介于两者之间。

你认为这样的排名系统可行吗?这个概念已经有了名字吗?是否有可能建立一个查询系统,以便在 Web 应用程序中合理地为 10,000 个项目实时提供结果?

database-design

5
推荐指数
1
解决办法
150
查看次数

标签 统计

database-design ×1