外键问题不会显示关系

时间:2013-06-05 15:10:24

标签: mysql foreign-keys

这是db im的简化代码,工作on..id喜欢在表Episodi和comparein之间建立关系,事实上你会看到我使用外键但是当我在phpmyadmin上使用设计器时它不会显示关系......出了什么问题??

create table Serie(
  nome varchar(25) primary key,
descrizione varchar(400)
) ENGINE=InnoDB;

create table Episodi(
  titolo_episodio varchar(25) not null,
  nome_serie varchar(25) not null,
numero int not null,
  durata time not null,
  data_trasmissione date not null,
  FOREIGN KEY (nome_serie)REFERENCES Serie(nome),
PRIMARY KEY(nome_serie,numero)
) ENGINE=InnoDB;

 create table Personaggi(
  id_pers int auto_increment primary key,
  nome varchar(15) not null,
  cognome varchar(15),
  nazionalita varchar (15),
  nome_serie varchar(25),
  FOREIGN KEY (nome_serie)REFERENCES Serie(nome)
  ) ENGINE=InnoDB;

create table comparein(
  id_pers int not null,
nome_serie varchar(25),
  numero int not null,
  primary key(id_pers,nome_serie,numero),
 FOREIGN KEY (id_pers)REFERENCES Personaggi(id_pers),
 FOREIGN KEY (nome_serie, numero) REFERENCES Episodi(nome_serie, numero)
 )  ENGINE=InnoDB;

1 个答案:

答案 0 :(得分:0)

http://sqlfiddle.com/#!2/67178/2

它出现在我身上作为索引。我相信如果你使用innodb数据库,你需要用约束显式设置它们,否则它只会在它们上面放一个索引。

create table comparein(
  id_pers int not null,
nome_serie varchar(25),
  numero int not null,
  primary key(id_pers,nome_serie,numero),
 CONSTRAINT fk_pers FOREIGN KEY (id_pers)REFERENCES Personaggi(id_pers),
 CONSTRAINT fk_nome FOREIGN KEY (nome_serie, numero) REFERENCES Episodi(nome_serie, numero)
 )  ENGINE=InnoDB;