我有3张桌子:
------------------------
| Competitions |
------------------------
| id (PK) | INT (auto++) |
| name | VARCHAR(100) |
------------------------
------------------------------------
| Matches |
------------------------------------
| id (PK) | INT (auto++) |
| blue1 | INT (FK -> teams.id) ** |
| blue2 | INT (FK -> teams.id) ** |
| blue3 | INT (FK -> teams.id) ** |
| red1 | INT (FK -> teams.id) ** |
| red2 | INT (FK -> teams.id) ** |
| red3 | INT (FK -> teams.id) ** |
| compID | INT (FK -> comps.id) |
------------------------------------
---------------------------------
| Teams |
---------------------------------
| id (PK) | INT |
| name | VARCHAR(100) |
| compID | INT (FK -> comps.id) |
---------------------------------
对于标有**的Matches中的列,我想要Teams.id的外键,但我需要确保匹配和团队中的compID是相同的。
例如,如果Team 9987要进行compID 1,则在compID为4的匹配中,它不应该是red1,2,3或blue1,2,3。
如何制定此约束?