Как организовать сложную связь между 2 таблицами в MySQL и Laravel

Делаю небольшой проект на laravel. Нужно связать 2 таблицы - Akts (заявки на ремонт оборудования) и Users (мастера, водители) (Там еще много таблиц, но они не участвуют здесь). Смысл связывания в том, что сотрудник может принять заявку, несколько сотрудников могут съездить на диагностику неисправного оборудования, могут съездить уже на ремонт продиагностированного оборудования. Т. е. получаются связи:

  1. Один ко многим - один сотрудник может зарегистрировать несколько заявок.
  2. Многие ко многим - на одну заявку по диагностике могут поехать несколько мастеров и мастер может ездить на множество заявок по диагностике.
  3. Многие ко многим - на одну заявку по ремонту могут поехать несколько мастеров и мастер может ездить на множество заявок по ремонту.

На заявки по диагностике и по ремонту могут ездить разные мастера, но может быть так, что принять продиагностировать и отремонтировать может один мастер.

В миграции для таблицы ЗАЯВКИ должно быть запись об отношении один ко многим:

$table->integer('user_id')->unsigned()->index()->nullable(); //id того кто принял заявку
$table->foreign('user_id')->references('id')->on('users');

Потом должны быть 2 таблицы pivot

Schema::create('users_akts', function (Blueprint $table) {
   $table->increments('id');
   $table->integer('akt_id')->unsigned()->index();
   $table->foreign('akt_id')->references('id')->on('users')->onDelete('cascade');
   $table->integer('user_id')->unsigned()->index();
   $table->foreign('user_id')->references('id')->on('akts')->onDelete('cascade');
});

но как написать вторую pivot таблицу и как потом вписать в модели это и вытаскивать данные в контроллере отдельно диагностировавших и ремонтировавших?


Ответы (0 шт):