условное соединение laravel на основе дополнительных внешних ключей - PullRequest
0 голосов
/ 06 июня 2018

Я получил эту структуру БД: enter image description here

ddts содержит 3 необязательных внешних ключа (только один из panel_id, sawn_id или veneer_id может содержать внешний идентификатор, а другие 2 равны null).Таким образом, один ddt может быть только одним из этих 3 типов:

  1. пилен
  2. панель
  3. фанера

Мне нужно извлечьдля каждого company_id (другого внешнего ключа) я суммирую некоторые данные с панелей, пиломатериалов и фанеры, но перед суммированием мне нужно даже конвертировать некоторые из них в килограммы (с помощью функции, реализованной мной).

В модели ddts ive методы: panel (), sawn (), veneer ();

Мне нужна только конечная сумма, но я предполагаю, что для достижения этой цели мне нужно собрать огромную коллекцию, а затемманипулировать им ... Мне бы хотелось понять, что лучше делать по запросу, а что по коду.

Мой первый подход был о:

  1. выбрать все компании
  2. в цикле foreach все ddts для каждой компании
  3. в цикле foreach для каждого ddt связывают тип, выбирая его через условие if
  4. в цикле Фрейша, выбирая значение для суммирования
  5. конвертируйте его в килограммы, где это необходимо
  6. суммируйте его;

но кажется, что это так долго и я совершенно уверен, что пункт 2 и 3 должен быть выполнен JOIN, но не так ясно, как!

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