我在音乐数据库中有两个(许多)表:

音乐会: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/

10-10 01:11