我想知道实时计算积分和排名的最快和最有效的方法。
我正在做一个投注足球比赛(用户试图预测比赛结果的比赛)。在我国被称为“Quiniela”。
球员们在比赛开始前进行“预测”。我的问题是:从游戏开始的那一刻起,这是最有效的方式(不仅仅是代码级别,而是数据库和服务器)“实时”计算玩家排名作为他们对游戏实际结果的预测.
例如:
如果 Team1 vs 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) 用于服务器,还有一群不时要求排名的手机。
对不起我蹩脚的英语=(