簡體   English   中英

MySQL中的多對多關系

[英]many to many relationship in MySQL

我有這個實體關系:

圖ER

我想保存有關當前球隊和最后一支球隊的信息,我還要保存每個球隊的不同職位。

我創建此表:

球員表:

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)

);

我可以創建除位置以外的所有表,mysql返回下一個錯誤:

錯誤代碼:1215。無法添加外鍵約束

也許我的圖表有一些錯誤,但是我不知道如何實現設計

問題是你沒有

在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)

);

我想我可以解決這一問題增加新的atributte codPlayer1codTeam,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)

);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM