跟踪不同季节的球队/球员的变化

时间:2013-02-25 10:30:48

标签: mysql database-design

请考虑以下表格:赛季,俱乐部,球队球员

一支球队属于一个俱乐部而且有球员,但每个赛季俱乐部的球队和球员都可以改变。我希望每个赛季都能跟随俱乐部/球队/球员的所有变化。

目前我创建了这样的关系表:

season_club (season_id,club_id)
season_team_player (season_id,team_id,player_id)

一个团队直接属于一个俱乐部(有一个外键列)。​​

这是解决这个问题的最佳方式吗?或者为每个赛季创建一个新俱乐部并将赛季直接存放在俱乐部更好?我这样做是因为俱乐部的数据在赛季之间没有变化,我想跟踪俱乐部球队/球员的变化,并跟踪球队变化的各个球员。

我希望我的问题有点清楚......

提前致谢!

1 个答案:

答案 0 :(得分:1)

  

目前我创建了这样的关系表:

     

season_club (season_id,club_id)
   season_team_player (season_id,team_id,player_id)

     

一个团队直接属于一个俱乐部(有一个外键列)。​​

这些表格中的第二个对我来说很有意义:与你的四个主要表格一起,这应该提供你需要的所有信息:你知道哪个球员在哪个赛季参加了哪支球队。而且你甚至可以看到哪个队员在一个赛季中有任何球员,从那个赛季中那支队伍中存在哪些队伍,以及俱乐部的关键点,得出那个赛季活跃的俱乐部。所以我认为没有必要使用第一张桌子,除非你的第二张桌子不完整,即有些俱乐部你没有现有球队的数据,或者你不了解个别球员。

在性能方面,可能需要更多冗余,但就优雅而言,上述方案以及一系列精彩视图应该能够很好地满足您的需求。

  

这是解决这个问题的最佳方式吗?或者为每个赛季创建一个新俱乐部并将赛季直接存储在俱乐部中更好?

我建议不要这样做,除非您想跟踪分会数据本身的变化,例如改变地址或其他什么。如果你能在不同季节识别同一个俱乐部而不必比较俱乐部的名字,我认为这是一个很大的优势。