0

很难解释,但说我有一个名为“团队”的表,它包含 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 成为“teams”表的 team_id?

每支球队都需要这个,这样他们就可以在主场和客场比赛中互相交手两次。

有没有一个查询可以让我更快,而不是输入固定装置 1by1

4

1 回答 1

2

当一个关系的属性是另一个关系的键时,它被称为外键

对于您的TeamFixtures表,您将有两个外键hometeamawayteam.

你的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)
    )
于 2012-11-01T02:55:15.063 回答