我目前有一个 MySQL 表设置,仅保存用户的最佳分数。如果他们获得更好的分数,则更新之前的分数。 我还想要一个 24 小时排行榜,仅显示过去...24 小时内发布的分数。
我想到了两个选择:
1) 每个排行榜都有 2 个单独的表。 “最佳分数”排行榜仅为每个用户保存 1 个分数,而“24 小时”排行榜则为每个用户保存 1 个分数并带有时间戳。这意味着每次提交分数时,需要将其发送到 2 个表而不是 1 个表,但与下一个选项相比,数据占用量将最小。
2) 有 1 个表,允许每个用户发布重复的分数,为分数添加时间戳,然后使用我需要的数据(总体最佳分数、24 小时内的分数等)简单地查询巨大的分数表。
有什么想法/建议吗?这是我第一次处理 PHP/MySQL,所以我不确定设计/效率方面最好的方法是什么。
最佳答案
对于规范化数据库,您应该只拥有包含所有分数的 1 个表。您应该只插入,而不是更新或删除。
然后,例如,如果您想查找最高分数,您可以在查询上应用 MAX
。
如果您想查找过去 24 小时内的分数,可以将其添加到 WHERE
子句中。
关于php - 返回用户最佳成绩的结果页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13446183/