への外部キー参照を追加することができなければならない、私はテーブルを作成するには、次の移行コードを持つテーブル食品、メニューは、2つを持っているは私は3つのテーブルメニュー、食品、menu_foodを持つピボットテーブル
$table->increments('id');
$table->timestamps();
$table->integer('food_id');
$table->integer('menu_id');
をmenu_food増分ID。
私はfood_idとmenu_idに外部キーを追加するべきですか?メニューテーブルと食べ物テーブルのIDを参照してください。
-----更新------
はい、あなたのようにforeign
キーを追加する必要があり、私は答えを試みたが、エラー
PHPの業者が
[Illuminate\Database\QueryException]
SQLSTATE[HY000]: General error: 1005 Can't create table `laravel_foodcall`.
`#sql-198c_1e1` (errno: 150 "Foreign key constraint is incorrectly formed")
(SQL: alter table `menu_food` add constraint `menu_food_food_id_foreign` f
oreign key (`food_id`) references `food` (`id`))
[PDOException]
SQLSTATE[HY000]: General error: 1005 Can't create table `laravel_foodcall`.
`#sql-198c_1e1` (errno: 150 "Foreign key constraint is incorrectly formed")
はい:)それは必要なく、キーがインデックスされているので、クエリが速くなりますされていません。 –
データベースエンジンにも自動インクリメントジョブを許可することをお勧めします。 制約を追加し、id以外のすべてのパラメータを渡すと、次のautoになります。 – JoelBonetR
外部キーの追加方法を教えてください。列を ' - > unsigned()'にするのを忘れないでください。 –