我在音乐数据库中有两个(许多)表:
音乐会:ArtistID、ConcertID、ConcetName、VenueID
音乐会详情:音乐会日期、音乐会 ID、费用
如您所见,ConcertDetails 表使用也在 Concerts 表中的 ConcertID。我结合 ConcertDate 和 ConcertID 为 ConcertDetails 创建一个复合主键。但是,由于这与 Concerts 表中的 ConcertID 相关,因此它也需要是外键。这样做可以吗?
最佳答案
是的当然。主键的子集是外键是很常见的。例如,任何多对多表都会执行此操作。在你的情况下:
CREATE TABLE ConcertDetails (
ConcertDate DATE NOT NULL,
ConcertID INT NOT NULL,
PRIMARY KEY (ConcertDate, ConcertID),
FOREIGN KEY (ConcertID) REFERENCES Concerts(ConcertID)
);
关于mysql - 外键可以成为另一个表的复合主键的一部分吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43576974/