php - 返回用户最佳成绩的结果页面

标签 php mysql

我目前有一个 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/

相关文章:

php - 使带有动态背景图片url的div成为一个链接

javascript - Laravel 中最好的图像裁剪包是什么?

php - 为什么我的准备好的语句不能正常运行?

mysql - MySQL - 简单的订单表现不佳

mysql - 带有单个参数的 sql IN 子句是否与单列查询相同?

MySQL UTF8 问题

php - 具有大结果集的 PDO/MySQL 内存消耗

php - 如何在动态网页中使用名称而不是 id

java - 从 PHP 向 Web 服务发送 HashMap 参数

mysql - 仅一年数据