Sql 有人能帮我弄清楚这两张桌子之间的关系吗?
我知道一支球队会有很多比赛,但我的困惑是比赛表中的两个外键指向球队表id。那么这会使它成为多对多关系吗?因为一场比赛有两个队,一个队有很多场比赛 那么,这会使它成为一种多对多的关系吗 不,在团队和游戏之间有两种一对多的关系。这是两个外键,一个独立于另一个(尽管您可能希望添加检查约束以禁止主队与主队相等的游戏) 比如:Sql 有人能帮我弄清楚这两张桌子之间的关系吗?,sql,database,database-design,many-to-many,one-to-many,Sql,Database,Database Design,Many To Many,One To Many,我知道一支球队会有很多比赛,但我的困惑是比赛表中的两个外键指向球队表id。那么这会使它成为多对多关系吗?因为一场比赛有两个队,一个队有很多场比赛 那么,这会使它成为一种多对多的关系吗 不,在团队和游戏之间有两种一对多的关系。这是两个外键,一个独立于另一个(尽管您可能希望添加检查约束以禁止主队与主队相等的游戏) 比如: create table game ( id int primary key, ... home_team_id int references tea
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)
);
创建桌面游戏(
id int主键,
...
主队id内部参考队(id),
客场团队id内部参考团队(id),
...
检查(主队\u id客队\u id)
);
那么,这会使它成为一种多对多的关系吗
不,在团队和游戏之间有两种一对多的关系。这是两个外键,一个独立于另一个(尽管您可能希望添加检查约束以禁止主队与主队相等的游戏)
比如:
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)
);
创建桌面游戏(
id int主键,
...
主队id内部参考队(id),
客场团队id内部参考团队(id),
...
检查(主队\u id客队\u id)
);
太好了,谢谢!因此,由于它们是独立的外键,因此每个外键都有自己的外键relationship@DavisHurd:是的,没错。这是两个关系,由两个不同的外键表示。很好,这对我来说真的很清楚。还有检查约束,就是为了确保游戏中的两支球队不能是同一支球队?@DavisHurd:是的,这就是检查约束的目的。非常感谢!因此,由于它们是独立的外键,因此每个外键都有自己的外键relationship@DavisHurd:是的,没错。这是两个关系,由两个不同的外键表示。很好,这对我来说真的很清楚。还有检查约束,就是为了确保游戏中的两支球队不能是同一支球队?@DavisHurd:是的,这就是检查约束的目的。FKs会建立多对多关系吗?现在你只是要求我们用定制的教程重写一本教科书&你没有表现出任何研究努力。请看,点击谷歌的“stackexchange家庭作业”和鼠标文本上方的投票箭头。在参考资料后面展示你的工作步骤,并说明理由&问1个具体的、经过研究的、不重复的问题,这是你被卡住的第一个地方。(记录和使用设计的语言和工具的手册不是这样的教科书。)(维基文章或网络帖子也不是。)PS所有的步骤都是常见问题。FKs会建立多对多关系吗?现在你只是要求我们用定制的教程重写一本教科书&你没有表现出任何研究努力。请看,点击谷歌的“stackexchange家庭作业”和鼠标文本上方的投票箭头。在参考资料后面展示你的工作步骤,并说明理由&问1个具体的、经过研究的、不重复的问题,这是你被卡住的第一个地方。(记录和使用设计的语言和工具的手册不是这样的教科书。)(维基文章或网络帖子也不是。)PS所有步骤也是常见问题解答。