0

考虑下表:赛季、俱乐部、球队球员

一支球队属于一个俱乐部并且有球员,但是每个赛季俱乐部的球队和那里的球员都可以更换。我希望能够跟踪每个赛季俱乐部/球队/球员的所有变化。

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

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

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

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

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

提前致谢!

4

1 回答 1

1

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

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

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

这些表格中的第二张对我来说很有意义:连同您的四张主要表格,这应该提供您需要的所有信息:您知道哪些球员在哪个赛季效力于哪个球队。你甚至可以看到在给定的赛季中哪些球队有任何球员,由此得出该赛季存在哪些球队的结论,以及从俱乐部的钥匙中得出哪些俱乐部在该赛季活跃。所以我认为第一个表格没有任何必要,除非您的第二个表格不完整,即您没有现有球队数据的俱乐部,或者您不知道个别球员的俱乐部。

就性能而言,可能需要更多的冗余,但就优雅而言,上述方案以及一堆漂亮的视图应该可以很好地满足您的需求。

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

我建议不要这样做,除非你想跟踪俱乐部数据本身的变化,例如地址的变化或其他什么。如果您无需比较俱乐部名称就可以在不同赛季识别同一俱乐部,我认为这是一个很大的优势。

于 2013-02-25T12:56:01.440 回答