【发布时间】:2017-05-06 00:09:37
【问题描述】:
我在创建数据库时遇到问题。我虚构的问题是创建用于跟踪排球比赛的数据库。它应该包含有关球员的信息(他们参加的球队,一名球员只能在一支球队中比赛),以及参加过的比赛(每场比赛每支球队有 6 名球员)。
我想创建以下表格:
- 玩家(Id P,Name,Surname,Team_Name F) ;
- 团队(Team_Name P,Coach);
- 比赛(日期,Team1 F,Team2 F,Player1_Team1 F,...Player2_Team2 F,Player1_Team2 F,...,Player2_Team2 F)。
我希望 Team1 和 Team2 是 Team 表中的外键 Team_Name。这是我的尝试,我发现外键格式不正确。我会很高兴得到帮助。
CREATE TABLE Team (
Team_Name varchar(20) NOT NULL,
Coach varchar(20) NOT NULL,
CONSTRAINT Team_pk PRIMARY KEY (Team_Name)
);
CREATE TABLE Game (
id int NOT NULL,
Data date NOT NULL,
Team1 varchar(20) NOT NULL,
Team2 varchar(20) NOT NULL,
Score int ,
D1_Player1 int NOT NULL,
D1_Player2 int NOT NULL,
D1_Player3 int NOT NULL,
D1_Player4 int NOT NULL,
D1_Player5 int NOT NULL,
D1_Player6 int NOT NULL,
D2_Player1 int NOT NULL,
D2_Player2 int NOT NULL,
D2_Player3 int NOT NULL,
D2_Player4 int NOT NULL,
D2_Player5 int NOT NULL,
D2_Player6 int NOT NULL,
CONSTRAINT Game_pk PRIMARY KEY (id)
);
CREATE TABLE Player (
Id int NOT NULL,
Name varchar(30) NOT NULL,
Surname varchar(30) NOT NULL,
Team_Name varchar(20) NOT NULL,
CONSTRAINT Player_pk PRIMARY KEY (id)
);
ALTER TABLE Player ADD CONSTRAINT DZ
FOREIGN KEY (Team_Name)
REFERENCES Team (Team_Name)
;
ALTER TABLE Game ADD CONSTRAINT MD
FOREIGN KEY (Team1, Team2)
REFERENCES Team (Team_Name, Team_Name)
;
ALTER TABLE Mecz ADD CONSTRAINT MZ
FOREIGN KEY (D1_Player1, D1_Player2, D1_Player3, D1_Player4, D1_zPlayer5, D1_Player6, D2_Player1, D2_Player2, D2_Player3, D2_Player4, D2_Player5, D2_Player6)
REFERENCES Player (id, id, id, id, id, id, id, id, id, id, id, id)
;
【问题讨论】:
-
请编辑您的问题,以便为您使用的 SQL 形式添加标签,即
MySQL、SQL-Server等。
标签: sql