SQL外键基于指定表的列

时间:2011-02-10 06:25:06

标签: sql mysql database database-design

假设我有一个表,其中包含指向表名的id列表,具有以下架构:

RemoteTables
============
id (Primary Key)
tableName (string)

假设我在另一个表中也有以下架构:

AnotherTable
============
id (Primary Key)
remoteTableId (foreign key referencing RemoteTables)
remoteId ("special" foreign key)

其中remoteId指向remoteTableId指定的表格中的一行。

我已经看到了一些我想要这样做的情况,但是有没有内置的SQL支持来以任何方式管理这种关系?

1 个答案:

答案 0 :(得分:1)

您所拥有的是一种特殊类型的约束,因为您正在构建自定义元数据库(各种数据字典)。所以没有什么“内置”本身。

你最好的选择是通过一个触发器来强制执行此操作,但不幸的是,MySQL上的触发器并不总是那么容易。