2012-10-07 52 views
0

我有一個外鍵需要引用兩個不同表的主鍵。來自兩個不同表的兩個不同主鍵的外鍵引用是否有效?

表1:動物

 animal_ id (primary key) 

表2:鳥

 bird_ id (primary key) 

表3:Pet_info

 pet_id, 
     type ENUM ('bird', 'animal') 
     foreign key (pet_ id) references animal(animal_id), bird(bird_id) 

所以,我需要無論是從動物或鳥類檢查pet_id表取決於需要。這有效嗎?或者我應該去進行一些重組。 。 。

注:I referred this . .,但我不知道是否我不得不改變我現有的設計

+2

看來你的外鍵在錯誤的地方。我期望外鍵在它們各自的表中是animal_id和bird_id,它們將引用父級Pet表(超類型/子類型模式)。 – sqlvogel

回答

-2

這是糟糕的設計。爲所有具有所有屬性的寵物製作一張桌子,其中一個屬於該類型。

相關問題