簡體   English   中英

引用2個不同表的列

[英]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_picturesarchive_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

另一個干凈的解決方案是合並pictureprint

medium( id, name, type)

其中type可以是"print""picture"或者當datamodel增長引用包含允許值的表的外鍵時。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM