以下架构:
archivebox (id, mediatype_id)
mediatype (id, name)
archivebox_records (id, archiveboxId, recordId)
picture (id,name)
print (id,name)
无论是pictureId还是printId都应该引用recordId。怎么可能解决这个问题呢?我使用 mysql。
谢谢!
最佳答案
最好在设计中保持明确。这将涉及创建两个表 archive_pictures
和 archive_prints
以及与各自表的外键关系。
如果您真的不想走这条路,请尝试向archive_records
表添加某种记录指示器,例如
ALTER TABLE `archive_records` ADD `record_type` ENUM('picture', 'print') NOT NULL;
然后您可以根据此指标创建查询
SELECT p.name FROM picture p
INNER JOIN archive_records ar
ON ar.record_type = 'picture' AND p.id = ar.recordId
关于mysql - 引用两个不同表的列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7938049/