У меня есть довольно простой и глупый вопрос относительно внешних ключей и построителя схем laravel (или, скорее, неправильное понимание того, как могут работать внешние ключи).Ограничение ключа Foregin на сводной таблице в Laravel 5.2
У меня есть следующие 3 таблицы:
Blueprint
- идентификатор
- имя
- некоторые другие поля
Коллекция
- ID
- описание
- некоторые другие поля
BlueprintCollection
- ID
- blueprint_id
- collection_id
Я хочу с reate внешний ключ, который связывает Blueprint's id
с BlueprintCollection's blueprint_id
и делает то же самое для Collection.
Это мое понимание того, что я должен сделать следующее
$table->foreign('blueprint_id')->references('id')->on('blueprint_table');
С ->onDelete('cascade
или ->onUpdate('cascade');
не должны делать эту часть, но я хочу, чтобы это было так.
Это должно быть сделано в таблице BlueprintCollection.
Однако, если я правильно понимаю это, он удалит запись в таблице Blueprint, если строка, содержащая blueprint_id
, которая ссылается на id
на Blueprint, будет удалена.
Очевидно, что, поскольку это соединительная таблица, я не хочу этого делать, а наоборот. Если запись в Blueprint удалена, я хочу удалить запись в таблице BlueprintCollection.
Я правильно понимаю это?