2017-04-23 145 views
1

我有兩個(很多)在音樂數據庫中的表:外鍵可以是另一個表的複合主鍵的一部分嗎?

音樂會:ArtistID,ConcertID,ConcetName,VenueID ConcertDetails:ConcertDate,ConcertID,成本

的ConcertDetails表,因爲你看到的,使用ConcertID這也在音樂會表中。我將ConcertDate & ConcertID合併爲ConcertDetails的複合主鍵。然而,由於這涉及來自Concerts表的ConcertID,所以它也需要是外鍵。這可以嗎?

回答

3

是的,當然。主鍵的一個子集通常是外鍵。任何多對多的表都可以做到這一點。在你的情況下:

CREATE TABLE ConcertDetails (
    ConcertDate DATE NOT NULL, 
    ConcertID INT NOT NULL, 
    PRIMARY KEY (ConcertDate, ConcertID), 
    FOREIGN KEY (ConcertID) REFERENCES Concerts(ConcertID) 
); 
相關問題