2017-04-23 2 views
1

Ich habe zwei (von vielen) Tabellen in einer Musikdatenbank:Kann ein Fremdschlüssel Teil eines zusammengesetzten Primärschlüssels für eine andere Tabelle sein?

Konzerte: ArtistID, ConcertID, ConcetName, VenueID ConcertDetails: ConcertDate, ConcertID, Kosten

Die ConcertDetails Tabellen, wie Sie sehen, verwendet ConcertID die ist auch in der Tabelle Konzerte. Ich kombiniere ConcertDate & ConcertID, um einen Composite-Primärschlüssel für ConcertDetails zu erstellen. Da dies jedoch ConcertID aus der Concerts-Tabelle betrifft, muss es auch ein Fremdschlüssel sein. Ist das in Ordnung?

Antwort

3

Ja, natürlich. Es ist üblich, dass eine Teilmenge eines Primärschlüssels ein Fremdschlüssel ist. Eine beliebige Viele-zu-Viele-Tabelle erledigt dies zum Beispiel. In Ihrem Fall:

CREATE TABLE ConcertDetails (
    ConcertDate DATE NOT NULL, 
    ConcertID INT NOT NULL, 
    PRIMARY KEY (ConcertDate, ConcertID), 
    FOREIGN KEY (ConcertID) REFERENCES Concerts(ConcertID) 
); 
Verwandte Themen