优化街机游戏中的数据库高分排名

时间:2019-07-16 09:54:18

标签: php mysql database

我正在尝试将在线高分表添加到基本的iOS应用中。我不希望它与GameCenter相关联,因此我想将高分存储在自己的数据库中。当用户首次打开应用程序时,系统会提示他们输入自己的昵称,高分将保存在该昵称下。从理论上讲,高分数据库将如下所示:

userid  name      highscore
1       james123  201       
2       xXsamXx   98         

userid是自动递增的,name是他们选择的昵称,highscore是他们获得的最高分数,每次他们打破所说分数时都会被覆盖。

要在游戏中返回用户的全球排名,我可以通过高分ORDER数据库并返回他们的位置。

这带来了两个我要解决的问题-我不想在任何人获得高分的情况下对整个数据库进行重新排序,而且我也不知道如何返回相同的排名得分相同的两个用户(作为一个列,即用户,最终将排在另一列之前)。我该如何解决这两个问题?

谢谢!

1 个答案:

答案 0 :(得分:1)

不用担心对表进行“重新排序”-ORDER BY仅对查询的结果进行重新排序,而不是对表本身进行重新排序。

如果您还想返回排名,则需要在表中添加一个rank字段,因为无论如何您都必须为两个相同的分数使用两个单独的行。您可以在更新highscore字段后立即填充此字段。