代码之家  ›  专栏  ›  技术社区  ›  Ilia Choly

mysql多表vs 1表

  •  2
  • Ilia Choly  · 技术社区  · 15 年前

    我做了一个简单的记分系统,每个用户可以有许多不同的游戏统计 但我不知道每个用户是否应该有自己的评分表,或者有一个包含所有评分的大表,其中有一个用户id列

    多个表:

    表名:[用户id]\u score

    游戏|高|最后|平均|得分

    单人桌:

    用户id |游戏id |高分|最后得分|平均得分

    4 回复  |  直到 15 年前
        1
  •  4
  •   Andrew Barber Eric Lafortune    15 年前

    肯定有一个用户id作为字段之一的表。处理这样的多个表是非常困难的(而且是不必要的)。

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

        2
  •  2
  •   cdhowie    15 年前

    使用单个表和组合主键 user_id game_id . 您可能还想在 游戏id 所以按游戏查找高分的速度很快。(如果 用户id 也不是标准的一部分。)

    使用每个用户一个表的方法可能会引起一些大的变化。

        3
  •  0
  •   Paul Sonier    15 年前

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

        4
  •  0
  •   FatherStorm    15 年前

    你可能想要:
    用户表user_info[],user_id
    游戏桌游戏信息[],游戏id
    一个user_game_join表,其中包含user_id、game_id、score、insertdate

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

    总是可扩展地构建。你永远不知道什么时候你需要完善你的代码,如果你不让它成为我们的权利,重做一个数据库是一个真正的陷阱。