【发布时间】:2017-10-03 21:36:38
【问题描述】:
我正在开发一款手机游戏,我乐观地希望我能拥有数百万玩家。
我创建了一个用户表,目前大约有 8 列(即用户 ID、用户名、密码、last_signin 等)
对于每个用户,我还需要记录他们拥有的游戏内货币数量(即金、银、宝石等)。
这是一种 1:1 的关系(用户永远只有 1 个值来定义他们拥有多少黄金)。
我不是数据库专家(这就是我在这里发帖的原因)。我担心如果我在用户表中添加黄金、白银、宝石等作为新行,那么用户表将受到每秒疯狂数量的查询的冲击。每当有人在游戏中发现更多金币、更多银币、登录、创建帐户...用户表就会被访问和/或更新。
将黄金、白银和宝石作为列添加到名为“资源”的新表中是否更聪明,该表具有以下列:用户 ID、黄金、白银、宝石。由于用户和资源之间存在 1:1 的关系,因此该新表将具有与用户表完全相同的行数。我想知道这些查询是否会更快,因为数据库数据被拆分并且并非所有查询都会转到同一个表。
在我看来,显然最好将它们全部放在一张表中,因为它们是 1:1.... 但是将大部分游戏数据放在一张表中似乎也是个坏主意。
感谢您提供的任何建议!
瑞恩
【问题讨论】:
标签: database postgresql database-design