[英]referencing columns of 2 different tables
以下架構:
archivebox (id, mediatype_id)
mediatype (id, name)
archivebox_records (id, archiveboxId, recordId)
picture (id,name)
print (id,name)
應該引用recordId是pictureId還是printId。 怎么可能解決這個問題? 我使用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
另一個干凈的解決方案是合並picture
和print
medium( id, name, type)
其中type
可以是"print"
或"picture"
或者當datamodel增長引用包含允許值的表的外鍵時。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.