我有这种实体关系:
我想保存有关当前团队和最后一支队伍的信息,同时我也会保存每个团队的不同职位。
我创建了这个表:
玩家表:
create table player(
codPlayer varchar(12) primary key,
name varchar(30) unique not null,
codCurrentTeam varchar(12),
position varchar(20),
foreign key (codCurrentTeam) references team(codTeam)
);
团队表:
create table team(
codTeam varchar(12) primary key,
name varchar(40) unique not null
);
lastTeam表:
create table lastTeam(
startDate date,
finishDate date,
codTeam varchar(12),
codPlayer varchar(12),
constraint pkLastTeam primary key (codTeam,codPlayer),
foreign key (codTeam) references team(codTeam),
foreign Key (codPlayer) references jugador (codPlayer)
);
职位表:
create table position(
codPlayer varchar(12),
codLastTeam varchar(24),
position varchar(20),
primary key (codPlayer, codLastTeam),
foreign key (codPlayer) references jugador(codPlayer),
foreign key (codLastTeam) references lastTeam(pkLastTeam)
);
我可以创建除position之外的所有表,mysql返回下一个错误:
错误代码:1215。无法添加外键约束
也许我的图有一些错误,但我不知道如何实现设计
答案 0 :(得分:0)
问题是你没有
在lastTeam t中创建表位置“pkLastTeam”列
codPlayer varchar(12),
codLastTeam varchar(24),
position varchar(20),
primary key (codPlayer, codLastTeam),
foreign key (codPlayer) references jugador(codPlayer),
foreign key (codLastTeam) references lastTeam(pkLastTeam)
);
答案 1 :(得分:0)
我想我可以解决为 codTeam,codPlayer1 添加新的atributte codPlayer1 和更改 pkLastTeam 的问题。 表格看起来像这样:
create table position(
codPlayer varchar(12),
codTeam varchar(12),
codPlayer1 varchar(12),
position varchar(20),
primary key (codPlayer, codTeam,codPlayer1),
foreign key (codPlayer) references player(codPlayer),
foreign key (codPlayer,codPlayer1) references lastTeam(codTeam,codPlayer)
);