2016-08-12 5 views
1

私は、外来キーとlaravelのスキーマビルダーに関して、むしろ単純で愚かな質問をしています(あるいは、外国キーがおそらくどのように機能するかについての誤解です)。Laravel 5.2のピボットテーブルのForeginキー制約

私は、次の3つのテーブルがあります。

青写真

  1. ID
  2. いくつかの他のフィールド

コレクション

  1. ID
  2. 説明
  3. いくつかの他のフィールド

BlueprintCollection

  1. ID
  2. をblueprint_id Cに私がしたい

をcollection_id BlueprintのidをBlueprintCollectionのblueprint_idにリンクする外部キーを再発行し、Collectionでも同じ操作を行います。

は、それは私がしかし、私はそれがこのようになりたい、私はこの部分を行う必要はありません->onDelete('cascade->onUpdate('cascade');

$table->foreign('blueprint_id')->references('id')->on('blueprint_table'); 

次の手順を実行しなければならない私の理解です。

これはBlueprintCollectionテーブルで行う必要があります。

しかし、ブループリントでidを参照しているblueprint_idを含む行が削除されると、これを正しく理解するとブループリントテーブルのエントリが削除されます。

明らかに、それは接合テーブルなので、私はそれをやりたいとは思わない。 Blueprintのエントリが削除されている場合、BlueprintCollectionテーブルのエントリを削除します。

これを正しく理解していますか?

答えて

0

次の試してみてください。

$table 
    ->foreign('blueprint_id') 
    ->references('id') 
    ->on('blueprint_table') 
    ->onDelete('cascade') 
    ->onUpdate('cascade'); 
関連する問題