2013-06-05 81 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