2

我正在制作一个简单的记分系统,每个用户都可以拥有许多不同游戏的统计数据但我不知道每个用户是否应该拥有自己的得分表或拥有一个包含所有得分的大表,其中包含 user_id 列

多个表:

表名:[用户 id]_score

游戏ID | 高分 | last_score | 平均分

单表:

用户 ID | 游戏ID | 高分 | last_score | 平均分

4

4 回答 4

4

绝对有一个以用户 ID 作为字段之一的表。处理这样的多个表将是非常困难的(而且是不必要的)。

您可能希望至少一个索引包含 userId 字段,以便查询可以快速找到每个 userId 的记录。

于 2010-11-10T20:43:43.660 回答
2

使用单个表和围绕user_idand的复合主键game_id。您可能还想创建一个补充索引,game_id以便通过游戏快速查找高分。user_id(如果组合键也不是标准的一部分,则组合键将不够用。)

使用每用户一张表的方法会导致一些 LARTing。

于 2010-11-10T20:45:37.093 回答
0

一定要保留一张表,其中包含所有 user_id。通常,您希望远离任何涉及在表名中生成数据(用户 ID)的解决方案(有例外,但很少见)。

于 2010-11-10T20:45:04.387 回答
0

你可能想要:
一个用户表 user_info[], user_id
一个游戏表 game_info[], game_id
一个包含 user_id, game_id, score, insertdate 的 user_game_join 表

这样,您就拥有了所有数据,可以按游戏、按用户、按游戏和用户、平均数等或其他任何方式获得高分。

始终可扩展地构建。你永远不知道你什么时候需要改进你的代码,如果你不把它放在我们的权利开始,重做一个数据库是一个真正的 PITA。

于 2010-11-10T20:45:11.970 回答