一列上的两个外键
Two Foreign Keys on one column
我在 MySQL 中有两个 table,名为 manuals
和 library
。两者都可以上传文件,所以我制作了第三个 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
我在 MySQL 中有两个 table,名为 manuals
和 library
。两者都可以上传文件,所以我制作了第三个 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