mysql多表vs 1表

时间:2010-11-10 20:42:05

标签: mysql multiple-tables

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

多个表:

表名:[用户ID] _score

game_id | high_score | last_score | AVERAGE_SCORE

单人表:

user_id | game_id | high_score | last_score | AVERAGE_SCORE

4 个答案:

答案 0 :(得分:4)

肯定有一个表,其中userID作为其中一个字段。处理这样的多个表将是非常困难的(并且不必要地如此)。

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

答案 1 :(得分:2)

使用单个表格和user_idgame_id周围的复合主键。您可能还想在game_id周围创建一个补充索引,以便快速查找游戏的高分。 (如果user_id也不是标准的一部分,那么复合键是不够的。)

使用每用户一个表的方法会导致一些LART。

答案 2 :(得分:0)

确保一张表中包含所有user_id的表。通常,您希望远离任何涉及在表名中生成数据(userID)的解决方案(有例外,但它们很少见。)

答案 3 :(得分:0)

你可能想要:
用户表user_info [],user_id
游戏桌game_info [],game_id
user_game_join表,其中包含user_id,game_id,score,insertdate

通过这种方式,你可以通过游戏,用户,游戏和游戏获得所有数据。用户,平均值和什么或其他什么。

始终可扩展地构建。您永远不知道何时需要优化代码并重做数据库是一个真正的PITA,如果你没有把它作为我们的权利开始。