Laravel Отношения, вложенные «с» производительностью по сравнению с запуском запрошенных запросов - PullRequest
0 голосов
/ 03 апреля 2020

Надеюсь, у вас все хорошо,

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

на данный момент в кейс этого проекта =>

First_Model => OneToMany => Second_model

Second_model => OneToMany => Third_Model

Third_Model => OneToMany => Forth_Model

Forth_Model => OneToMany => Fifth_Model

, и мой запрос:

Laravel Строка: First_Model::whereId($ModelId)->with('Second_Model.Third_Model.Forth_Model.Fifth_Model' )->get();

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

select * from `First_Model` where First_Model_id = $modelId
select * from `Second_Model` where `Second_Model`.`First_Model_id` = $modelId
select * from `Third_Model` where `Third_Model`.`Second_Model_id` in (Second_Model_Collection_Found_Above)
select * from `Forth_Model` where `Forth_Model`.`Third_Model_id` in (Third_Model_Collection_Found_Above)
select * from `Fifth_Model` where `Fifth_Model`.`Forth_Model_id` in (Forth_Model_Collection_Found_Above)

, если Laravel запрос выше не верен, Подскажите, пожалуйста, что это за запрос, который выполняется с кодом Laravel, приведенным выше?

Если запрос правильный, есть ли лучший и более эффективный способ загрузки этих данных? так как он будет называться довольно много

спасибо за ваше время и внимание :) 1033 *

...