1

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

我正在设计一个网络应用程序

  1. usersgames可以玩teams
  2. 每个game都有它的categories
  3. usersteam为他们创建game并选择他们的team category
  4. 每个game都有自己的categories启用子集
  5. 事实上categories,从游戏到游戏略有不同。例如,在game1game2中有慢动作类别,但它们在允许的时间上有所不同。

我希望如何存储这个:

  1. 有表users, teams, games, categories, 每个都有足够的数据字段和INT primary_keys
  2. user——MNteam关系表
  3. game- categoryMN 关系表,带有允许的时间列
  4. 表中有category_idgame_id外键team

我的常见问题:

  1. 用户 -> 所有他/她的团队,其中他们是游戏,类别
  2. 游戏->所有类别
  3. 游戏 -> 所有参与的团队,有类别,有用户
  4. 游戏 -> 所有用户参与
  5. 团队->这是游戏,类别

我对我的建议:

  1. category在关系表中创建一个真正的类别 id 创建一个单独的 INT 主索引game并在团队表中使用它
  2. 使用 team_id category_id game_id 创建单独的表,并将它们设置为连接的主索引
  3. 只需game_idteams表中设置为 INDEX

问题是这件事是否可以接受,有什么建议可以接受?

4

1 回答 1

2

一些想法:

  • 用于UNSIGNED INT主键而不是INT.
  • 你必须有一些 TEAM -> GAME 映射,对吧?

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

你的“建议”试图解决什么问题?

于 2012-11-13T18:17:20.037 回答