【发布时间】:2011-04-17 11:05:59
【问题描述】:
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 Championship
表和team_per_champsionship 表(用于索引)。
可用架构
非常感谢
【问题讨论】:
-
您的表将遭受许多异常,例如当失败的球队打进一个或多个进球而获胜的球队得分 -1、零或
NULL进球时。还可以考虑将赛程(可以在赛前确定)和结果(只能在赛后确定)放在不同的表中,以删除可为空的列。 -
你能帮忙吗?
标签: sql mysql normalization