【发布时间】:2013-12-27 15:52:38
【问题描述】:
我正在为 sqlite 中的以下问题寻找最佳的数据库架构:
我有球员和球队,球员被分配到球队(一名球员可以属于几支球队),我需要能够找到球队,其中指定球员作为参数传递。例如,如果队 2 有球员 1、3 和 4,那么如果我查询球员 1、3 和 4,我需要得到队 2。
此外,查询一个团队并获取其中的球员列表会很有用。
目前我的架构是:
players: id(PK), name
teams: id(PK), name
players_in_teams: player_id(FK), team_id(FK)
但我怀疑这是最好的解决方案,因此需要帮助。
【问题讨论】:
-
"一个玩家可以属于多个团队" . . .同时?
-
您创建的是一个多对多表,如果一个玩家确实可以属于多个团队(并且一个团队可以有多个成员),那么这是正确的架构.
-
你的架构很好,这正是你应该做的。要查找玩家所在的团队,您可以:
SELECT team_id FROM players_in_teams WHERE player_id = MYID。 -
select distinct team_id from players_in_teams where player_id in (1, 3, 4)
标签: sql sqlite database-schema