带有外键的表上的MySQL约束

时间:2016-01-30 00:55:27

标签: mysql database database-design

我有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。

如何制定此约束?

0 个答案:

没有答案