【发布时间】:2015-01-26 02:06:47
【问题描述】:
我想知道实时计算积分和排名的最快和最有效的方法。
我正在做一个投注足球游戏(用户试图预测之前比赛结果的游戏)。在我国被称为“Quiniela”。
玩家在比赛开始前进行“预测”。我的问题是:从游戏开始的那一刻起,这是最有效的方式(不仅仅是代码级别,而是数据库和服务器)“实时”计算玩家排名作为他们对游戏实际结果的预测.
例如:
如果 Team1 与 Team2 比赛, 用户 U1 预测比赛将以 0-0 结束, U2预测比赛将以1-0结束, U3 预测比赛将以 1-1 结束。
在比赛开始时,U1 会排名第一,因为如果比赛以这样结束,他的预测将是正确的,或者至少是最准确的。
然后比分切换到 1-0,用户 U1 将是排名的最后一位(因为他的预测已经不可能了),U2 将是第一名,U3 将是第二名。
如果比分变成 1-1,U2 会第一,U3 会第二(因为他猜到了部分结果),U3 最后。
我考虑过在您更改分数时创建一个具有一个级别的可能性树(0-0 第一个节点,1-0 和 0-1 作为子节点),“暂时”更改排名,我会保留它在缓存中。
游戏结束后,我会在数据库中保存最新的排名。
有更优化的方法来解决这个问题吗? 以前有人提出过,已经解决了吗? 我用 MySQL 做数据库,用 PHP (Cake Php) 做服务器,还有一堆不时询问排名的手机。
对不起我蹩脚的英语=(
【问题讨论】:
-
虽然这个问题很开放,但我要问的是是否有一种算法已经可以做到(我在大学里没有看到)让我这样做。这就像问哪个是排序数字的最佳算法。如果它有名称(例如排序算法,在这种情况下)有人请告诉我。
标签: php mysql algorithm ranking ranking-functions