php - 保存到一张表还是创建多个表?

标签 php mysql structure

我现在处于两难的境地,不知道哪个更好。假设我的网站上有 100++(或更多)游戏。我想存储每场比赛的高分。我应该将所有高分存储在一张表中还是每个游戏都有自己的表?

比较:

1 个表:1 个表包含很多行(数据)。每个玩不同游戏的用户都会向此表提交分数。不知道如果很多用户同时提交会怎么样。这个表结构应该是:gameID,name,score。所以我只需进行 1 个查询即可在 1 个 php 页面中查看哪个游戏的高分。

如果使用多个表(每个游戏都有自己的表),我会有更多的表,但行数(数据)会少得多。

从长远来看,哪一个更好? sql性能怎么样?

我正在使用 php 和 mysql。

最佳答案

我会为玩家制作一张表,一张用于游戏,一张用于高分的多对多表格,其中包含player_id、game_id和高分值。

讨论

如果您有 100.000 名玩家和 500 款游戏,您最多可以拥有 50.000.000 个条目。但它们是数字且非常短。 最好不要使用实时查询来提供高分,而是使用缓存文件的结果。几乎每个人都是这样做的。您每天都会更新缓存的高分列表。通过这种方式,您可以实时进行写入并从缓存中进行读取,并且它们不会干扰。

另一个建议是每月重置高分表,或者根据访问频率将旧数据分开。 Facebook 正在做类似的事情,正如我在他们的首席开发人员的演示中看到的那样。

关于php - 保存到一张表还是创建多个表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1193071/

相关文章:

php - 首先会发生什么? .htaccess 或 php 代码?

c# - 检查数据库中是否已存在电子邮件

c++ - 在 C++ 代码中初始化 C 结构

c - 以下 SLL 声明有何不同

php - 来自 WHERE 条件的所有行的总和?

php - MySQL 行在数据输入时被删除

mysql - Oracle SQL - 编写带计数查询的连接

C++ 类型转换损坏的结构

php - mysqli 准备语句失败且没有错误

mysql - 检查 MySQL 中特定范围内的值