2014-12-03 56 views
0
CREATE TABLE Album (
    name   VARCHAR(50), 
    lenght FLOAT, 
    genre VARCHAR(30), 
    nrSongs INT, 

    PRIMARY KEY (name, writer), 
    FOREIGN KEY (writer) REFERENCES Musician(name) OR Band(name), 
    FOREIGN KEY (Studio) REFERENCES Studio(name) 

); 

好的這就是我想要做的,音樂家或樂隊,但是這給了我一個OR語句錯誤,你知道實現這個的正確方法嗎?我找不到它。 謝謝:)在外鍵中創建帶有兩個引用的表

+0

看看這裏:http://stackoverflow.com/questions/7844460/foreign-key-to-multiple-tables – deterministicFail 2014-12-03 16:57:58

回答

1

不可能。外鍵是一個表中的一個字段與另一個表中的另一個字段之間的直接鏈接。它是1:1。在外鍵定義中不能有n:1,1:n或n:n映射。

另外,您的整體表格定義無效。您沒有writer字段,因此您的主鍵和寫入器FK無論如何都會失敗。

爲了這個特殊的目的,爲什麼不讓每個人都成爲一個「樂隊」。獨奏藝術家只是一個恰好有一個成員的樂隊。

+0

謝謝,這是一個很好的解決方案,但我需要兩個表,是否沒有其他選擇? – Pedro 2014-12-03 17:25:06

相關問題