SQL关系1键不是表之间的2个键

时间:2018-01-18 15:20:48

标签: sql

我想在表Speler和表Wedstrijd之间定义外键约束。我想要Wedstrijd表上的密钥,但是当我在SQL控制台中使用此代码时:

ALTER TABLE Speler
ADD FOREIGN KEY (idSpeler) REFERENCES Wedstrijd(idWedstrijd);

它在表Speler和表Wedstrijd

上放置了一个键

谢谢你的时间!

2 个答案:

答案 0 :(得分:1)

ALTER TABLE Wedstrijd
ADD FOREIGN KEY (idWedstrijd) REFERENCES Speler(idSpeler);

答案 1 :(得分:1)

我认为你有一个不同的问题,而不是“解决”你认为是你的问题的方法:

通过将idSpeler映射到idWedstrijd,您基本上是说Speler( Player 等于 Wedstrijd(匹配)。这将成为1:1关系,然后显示为带有两个黄色“键”结尾的行(假设您使用的是SQL Server)。

我很可能需要创建一个位于其他两个表之间的链接表 WedstrijdSpeler

然后需要为新表 WedstrijdSpeler 提供2个外键:

  • WedstrijdSpeler.idWedstrijd -> Wedstrijd.idWedstrijd
  • WedstrijdSpeler.idSpeler -> Speler.idSpeler

然后,您可以为 WedstrijdSpeler 提供组合的主键(包含字段idWedstrijdidSpeler),或者您可以添加第三个字段{{ 1}}并将其作为主键。无论哪种方法都可以,这取决于你。