Laravel миграция той же зависимости внешнего ключа на 2 разные таблицы - PullRequest
0 голосов
/ 17 июня 2020

У меня есть 3 таблицы:

1) CourseA
2) CourseB
3) Orders

Вот структура CourseA таблица:

id | course_title 
1  | Maths
3  | Physics 

Вот структура CourseB таблица:

id | course_title 
2  | Biology
6  | Physcology

Вот структура Заказы таблица:

id | course_id | course_type 
1  | 1         | 1
2  | 2         | 2

( Примечание: course_type == 1 означает запись принадлежит таблице CourseA, & course_type == 2 означает, что запись принадлежит таблице CourseB).

Теперь здесь, в таблице заказов, course_id - это внешний ключ, зависящий от двух разных таблиц.

Как я могу использовать Laravel Migration для этого типа сценария?

Я устал что-то вроде этого, но он не работает:

Schema::table('orders', function($table)
{
    $table->foreign('course_type')->references('id')->on('courseA');
    $table->foreign('course_type')->references('id')->on('courseB');
});

Есть идеи, что здесь не так?

1 Ответ

0 голосов
/ 17 июня 2020

Вам необходимо создать column, а затем создать внешний ключ при миграции. Это должно быть:

Schema::table('orders', function($table)
 {   
      $table->bigIncreaments('id'); // not necessary 

      $table->bigInteger('course_type_a')->unsigned();
      $table->foreign('course_type_a')->references('id')->on('courseA');

      $table->bigInteger('course_type_b')->unsigned();
      $table->foreign('course_type_b')->references('id')->on('courseB');

 });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...