【问题标题】:Could someone help me figure out the relationship between these two tables?有人可以帮我弄清楚这两个表之间的关系吗?
【发布时间】:2020-09-25 03:51:25
【问题描述】:

我知道一个团队会有很多游戏,但我的困惑是游戏表中的两个外键指的是团队表 id。那么这会使它成为多对多的关系吗?因为一场比赛有两支球队,一支球队有很多场比赛?

【问题讨论】:

  • FK 会建立多对多的关系吗?现在你只是要求我们用定制的教程重写一本教科书,而你没有表现出任何研究努力。请参阅How to Ask,点击谷歌搜索“stackexchange 作业”和投票箭头鼠标悬停文本。在有理由的参考之后显示您的工作步骤,并在您遇到问题的第一个地方提出 1 个经过研究的特定非重复问题。 (记录和使用设计的语言和工具的手册不是这样的教科书。)(维基文章或网络帖子也不是。)PS所有步骤也是常见问题解答。

标签: sql database database-design many-to-many one-to-many


【解决方案1】:

所以这会使其成为多对多的关系

没有。您在团队和游戏之间有两个一对多关系。这是两个外键,彼此独立(尽管您可能希望添加一个检查约束来禁止主队等于主队的比赛)。

类似:

create table game (
     id int primary key,
     ...
     home_team_id int references team(id),
     away_team_id int references team(id),
     ...
     check(home_team_id <> away_team_id)
);

【讨论】:

  • 非常感谢!因此,由于它们是独立的外键,因此它们每个都有自己的关系
  • @DavisHurd:是的,没错。这是两个关系,由两个不同的外键表示。
  • 好吧,这真的为我解决了问题。还有就是检查约束是为了保证比赛中的两支球队不能是同一支球队?
  • @DavisHurd:是的,这就是 check 约束的目的。
猜你喜欢
  • 2021-02-12
  • 1970-01-01
  • 2022-12-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多