关系表概念:请检查我的理解

时间:2012-11-13 00:25:35

标签: mysql database database-design

我正在设计我的第一个大数据库,并想检查一下,我是否可以提供表关系。

我正在设计一个webapp

  1. users可以在games
  2. 中播放teams
  3. 每个game都有categories
  4. usersteam创建game并选择他们的team category
  5. 每个game都有categories已启用
  6. 的子集
  7. 事实上categories在游戏中略有不同。例如, game1 game2 中有 slowpoke 类别,但它们的时间不同。
  8. 我希望如何存储:

    1. 有表usersteamsgamescategories,每个都有足够的数据字段和INT primary_key s
    2. user - team M-N关系表
    3. game - category M-N关系表,附带时间列
    4. category_id
    5. 上有game_idteam个外键列

      我常见的疑问:

      1. 用户 - >所有他/她的团队,他们是游戏,类别
      2. 游戏 - >所有类别
      3. 游戏 - >所有团队都与类别一起参与了用户
      4. 游戏 - >所有用户都参与了
      5. 团队 - >这是游戏,类别
      6. 我对我的建议:

        1. 创建一个真实类别ID,在category - game关系表中创建一个单独的INT主索引,并在团队表中使用它
        2. 使用team_id category_id game_id创建单独的表,并将它们全部设置为连接的主索引
        3. 只需将game_id表格中的teams设为INDEX
        4. 即可

          问题是这件事是否合适以及接受哪些建议?

1 个答案:

答案 0 :(得分:1)

一些想法:

  • 使用UNSIGNED INT作为主键,而不是INT
  • 你必须有一些团队 - > GAME映射,对吧?

鉴于此,您似乎可以轻松处理“常见问题”。

您的“建议”试图解决哪些问题?