我正在设计我的第一个大型数据库并想检查我是否可以提供表关系。
我正在设计一个网络应用程序
usersgames可以玩teams- 每个
game都有它的categories usersteam为他们创建game并选择他们的teamcategory- 每个
game都有自己的categories启用子集 - 事实上
categories,从游戏到游戏略有不同。例如,在game1和game2中有慢动作类别,但它们在允许的时间上有所不同。
我希望如何存储这个:
- 有表
users,teams,games,categories, 每个都有足够的数据字段和INT primary_keys - 有
user——MNteam关系表 - 有
game-categoryMN 关系表,带有允许的时间列 - 表中有
category_id和game_id外键team列
我的常见问题:
- 用户 -> 所有他/她的团队,其中他们是游戏,类别
- 游戏->所有类别
- 游戏 -> 所有参与的团队,有类别,有用户
- 游戏 -> 所有用户参与
- 团队->这是游戏,类别
我对我的建议:
category在关系表中创建一个真正的类别 id 创建一个单独的 INT 主索引game并在团队表中使用它- 使用 team_id category_id game_id 创建单独的表,并将它们设置为连接的主索引
- 只需
game_id在teams表中设置为 INDEX
问题是这件事是否可以接受,有什么建议可以接受?