Mar*_*ten 4 mysql foreign-key-relationship laravel
我在 MySQL 中有两个表,命名manuals和library. 两者都可以上传文件,所以我制作了第三个表,名为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');
Run Code Online (Sandbox Code Playgroud)
不可以。您不能在同一列上有多个外键。从 MySQL 文档:
MySQL 支持表中一列和另一列之间的外键引用。(列不能有对自身的外键引用。)在这些情况下,“子表记录”实际上是指同一表中的相关记录。
这样做的原因是 MySQL 将无法区分父级。Laravel(或任何其他框架)不提供解决此问题的方法。
之前以略有不同的形式提出了这个问题。示例:可以将一列引用为多个外键
| 归档时间: |
|
| 查看次数: |
5280 次 |
| 最近记录: |