实现多对多关系

implementing a many to many relationship

我正计划创建一个数据库来跟踪足球联赛中的球队和球员。我希望跟踪的统计数据如下...

进球scored/conceded(gk)、助攻、上场时间、接球数和得分王。

以及整体排名和赛程和结果。我创建了一个 ER 图,我认为我拥有所有必需的 table,但有一些我知道不应该存在的 m:n 关系,所以我希望我的关系是正确的

更新 更新了错误图

我可能会也可能不会包括这个联赛的第二个轮胎,否则我认为我实际上不需要联赛 table。

如果我按原样实施它会不会给我带来任何问题。我不确定在 fixtures table 中有 2 个列引用 teams table 中的一列是否可以。我的 goals_scored table 和我的 player_match table.

有两个相同的 fk

我走对了吗?任何帮助将不胜感激。

可以让 table 的两列引用另一个 table 的同一列。 fixtures table 有一个 home_team 和一个 away_team 列,每个都有不同的含义,但指向相同类型的实体。

我认为如果它引用 player_match table 而不是球员 table,你的进球 table 会更好,因为它唯一可以引用的球员是参加过比赛的人。

您还需要考虑如何从 table 中提取数据,因为您在三个 table 中复制了 goals_scored 和 goals_conceded 列秒。如果这些值存储一次,比如在 goals_scored table 上,并在提取数据时由您的查询计算,这将有助于您的数据完整性。