-1

这是我正在处理的数据库的简化代码..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;
4

1 回答 1

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;
于 2013-06-05T15:25:17.597 回答