一列上的两个外键

Two Foreign Keys on one column

我在 MySQL 中有两个 table,名为 manualslibrary。两者都可以上传文件,所以我制作了第三个 table,命名为 files。在文件中,我有一列 parent_id。我可以将 parent_id 作为手册和库中的外键吗?

我正在使用 Laravel (4.2) 并尝试了这个,但它不起作用:

$table->integer('parent_id')->unsigned();
$table->foreign('parent_id')->references('id')->on('library');
$table->foreign('parent_id')->references('id')->on('manuals');

没有。同一列上不能有多个外键。来自 MySQL 文档:

MySQL supports foreign key references between one column and another within a table. (A column cannot have a foreign key reference to itself.) In these cases, “child table records” really refers to dependent records within the same table.

原因是 MySQL 无法区分 parents。 Laravel(或任何其他框架)不提供解决此问题的方法。

这个问题之前的形式略有不同。示例:it is possible to reference one column as multiple foreign keys