CREATE TABLE IF NOT EXISTS `mydb`.`MATCHES` (
`idMatch` INT NOT NULL ,
`idChampionship` INT NOT NULL ,
`idWinningTeam` INT NOT NULL ,
`idWLoosingTeam` INT NOT NULL ,
`date` TIMESTAMP NULL DEFAULT NULL ,
`goalsWinningTeam` INT NULL DEFAULT -1 ,
`goalsLoosingTeam` INT NULL DEFAULT -1 ,
`played` CHAR NULL DEFAULT 'Y' ,
PRIMARY KEY (`idMatch`) ,
INDEX `ID_TEAM_X_CHAMP` (`idMatch` ASC) ,
CONSTRAINT `ID_TEAM_X_CHAMP`
FOREIGN KEY (`idChampionship` , `idMatch` )
REFERENCES `mydb`.`TEAMS_PER_CHAMPIONSHIP` (`idChampionship` , `idTeam` )
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB;
我正在尝试制作一个匹配表,我不确定如何设置输赢队伍,两者都是由idTeam(我可以为两者使用相同的外键吗?)我有一个Team table a锦标赛
table和teams_per_champsionship表(用于索引)。
答案 0 :(得分:0)
示例架构:
Team Table
----------
TeamID pk
rest of the team information
Championship Table
------------------
ChampID pk
rest of the championship info
Match Table
-----------
MatchID pk
winningTeamID fk
losingTeamID fk
rest of the match info
ChampMatchTable
---------------
ChampId fk (dups)
MachID fk
OR
您可以将ChampID放入比赛表中,而不是拥有ChampMatchTable。
以下原始答案
是的,你不能为两者使用相同的密钥。它们都是同一张桌子的钥匙,但它们是不同的(因为每个团队都不同。)
不清楚idChamionship的关键点是什么。这是一个描述具有匹配项的事件的表吗?