这是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;
答案 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;