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