我在音乐数据库中有两个(很多)表:
音乐会:ArtistID,ConcertID,ConcetName,VenueID ConcertDetails:ConcertDate,ConcertID,Cost
如您所见,ConcertDetails表使用ConcertID,它也在Concerts表中。我结合了ConcertDate& ConcertID为ConcertDetails制作复合主键。但是,由于这与Concerts表中的ConcertID有关,因此它也需要是外键。可以这样做吗?
答案 0 :(得分:6)
是的,当然。主键的子集通常是外键。例如,任何多对多表都会这样做。在你的情况下:
CREATE TABLE ConcertDetails (
ConcertDate DATE NOT NULL,
ConcertID INT NOT NULL,
PRIMARY KEY (ConcertDate, ConcertID),
FOREIGN KEY (ConcertID) REFERENCES Concerts(ConcertID)
);