我正在建立一个锦标赛系统,需要根据两个标准对团队进行排序:
- 积分(连胜 3 局得 2 分)
- 游戏差异(游戏赢 - 输)
现在我有一个表格列用于积分,一个用于单场胜利,一个用于单场失利。
我从按点排序的数据库中获取结果(ORDER BY points DESC)。问题在于个人排名。如果 A 队和 B 队的积分相同,但 B 队的胜场数和负数场数之差更高,则 B 队的排名将高于 A 队。
由于所有比赛不会在同一时间进行,而且有些球队可能会落后于他们的日程安排,因此完全可能的情况是,一支球队的胜场比另一支球队多,但差距更大。
现在我能想出的唯一解决方案如下:
- 从数据库中获取数据(按点排序)
- 计算每个点值出现的次数(例如:9pts.x2、7pts.x5...)
- 根据步骤 2 制作所需的数组数量。
- 再次根据点值将数据排序到这些数组中。
- 如果数组的长度大于 1,则根据赢局和输局之间的差异对其进行排序。
- 打印最终结果。
这对我来说似乎非常低效。有更好的想法吗?