jlm*_*564 1 google-app-engine database-design ranking nosql amazon-simpledb
我正在使用 Google App Engine,因此我使用的是非关系数据库 (NoSQL)。我的问题是:
使用得分建模排名(玩家排名)的最佳选择是什么?
例如,我的球员是:
Player { String name, int score}
Run Code Online (Sandbox Code Playgroud)
我想知道一名球员的排名(位置)并获得前 10 名球员,但我怀疑这是最好的方法。
谢谢。
如果您的分数已编入索引,则可以轻松执行数据存储查询并按排序顺序获取玩家。所以如果你想要前10名的球员,那是很微不足道的。
获得任意玩家的排名确实很难。我想说,如果可以的话,就避免它,如果不能,就找到一种解决方法。
例如,如果您有 50,000 名玩家,而 PlayerX 的排名为 12,345,则了解这一点的唯一方法是查询所有玩家,并检查每个玩家并保持计数,直到找到 PlayerX。
一种技巧可能是将玩家排名存储在玩家实体中,并使用每隔几个小时运行一次的 cron 作业来更新它。
| 归档时间: |
|
| 查看次数: |
657 次 |
| 最近记录: |