很难解释但是说我有一个名为'Teams'的桌子,它包含5个这样的团队:
team_id, teamname, manager
1, Team1, 1
2, Team2, 10
3, Team3, 3
4, Team4, 5
5, Team5, 6
我需要创建另一个类似于此的表(例如名为TeamFixtures)
id, HomeTeam, HomeScore, AwayScore, AwayTeam
NULL NULL
我如何让HomeTeam和AwayTeam成为'球队'桌子的team_id?
我需要为每个团队提供这样的服务,以便他们互相对战,主场和客场比赛两次。
是否有查询可以让我更快,而不是输入灯具1by1
答案 0 :(得分:2)
当关系的属性是另一个关系的键时,它被称为Foreign Key。
对于TeamFixtures
表,您将拥有两个外键hometeam
和awayteam
。
您的CREATE
声明如下:
CREATE TABLE teamfixtures(
...
hometeam INT,
awayteam INT,
...
CONSTRAINT fk_hometeam FOREIGN KEY(hometeam) REFERENCES teams,
CONSTRAINT fk_awayteam FOREIGN KEY(awayteam) REFERENCES teams,
CONSTRAINT ck_teams CHECK(hometeam <> awayteam)
)