mysql - 引用两个不同表的列

标签 mysql sql

以下架构:

archivebox (id, mediatype_id)
mediatype (id, name)
archivebox_records (id, archiveboxId, recordId)
picture (id,name)
print (id,name)

无论是pictureId还是printId都应该引用recordId。怎么可能解决这个问题呢?我使用 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

关于mysql - 引用两个不同表的列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7938049/

相关文章:

mysql - 我想传递相同的ajax属性

mysql - 查找两列中的不同值

mysql - 如何使 OleDB 查询读取冒号 :

mysql - SQL COUNT 给出相同的值

javascript - 从 MySQL 数据库加载热图 LatLng 坐标 Google map API

javascript - 使用 php、javascript 和 json 添加 map 标记

mysql - 在 MySQL 中的存储过程中使用变量

sql - ADODB CreateParameter 方法中名称参数的用途是什么?

sql - Rails Active Record 查询 : answered questions, 按答案日期排序,不重复

php - 如何将两个表单字段值合并到一个 mysql 表列中?