2013-06-05 61 views
-1

这里是简化代码的数据库即时通讯工作在.. ID喜欢有表之间的关系Episodi和比较,事实上,你会看到即时通讯使用外键,但是当我去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

你有[启用该功能](http://wiki.phpmyadmin.net/pma/relation)? – RandomSeed

回答

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; 
+0

但它显示了其他表的关系... – Skyzzo

+0

如果您将personaghi表的外键关系取出,episodi表的外键是否显示? – Hituptony

+0

我不知道这是什么意思......但是如果我尝试创建这个数据库,我不会看到链接的那一行:表中的nome_serie和numero与表格上的同一个属性的比较Episodi – Skyzzo