【发布时间】:2016-03-20 15:16:02
【问题描述】:
我希望知识渊博的人能够帮助我解决我面临的问题。
我有一个游戏,我在其中使用 Rails 作为后端来处理许多任务,包括获取高分。在游戏中,用户可以创建自己的关卡,其他用户随后可以在这些关卡上玩。我目前通过以下方式将分数存储在一个名为“scores”的表中
level_id:关卡的id
user_id:关卡用户的id
total_score:用户在该级别上取得的分数
每次用户完成一个级别时,都会显示该级别的高分,但是我看到的问题是我必须为每个级别获取具有相应 level_id 的每个数据库条目,然后对获取的条目进行排序按 total_score 降序排列。我觉得好像有更好的方法可以做到这一点,因为我目前必须对每个级别的每个分数进行排序,这似乎是重复的,而且我发现如果表中有大量条目,这可能会很慢,获取 level_id。
我想知道是否有更好的方法是为每个级别创建一个表,该表可能包含 user_id 和 total_score,并按 total_score 排序。我觉得这似乎会减少需要执行的排序过程的数量,但我想知道在数据库中以这种格式拥有大量表是否有不利之处,或者是否可能有另一种方式解决这个问题?
谢谢,
约翰
【问题讨论】:
-
用户完成一个关卡后,您是要按降序显示该关卡的有限数量的高分还是该关卡的所有总分?
标签: sql ruby-on-rails database-design