2017-04-23 96 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) 
); 
相关问题