169 похожих чатов

С построением запросов через Query Builder у меня не возникает

вопросов, но вот Eloquent кажется мне замудреным и требующим больше времени. Не понимаю пока (не имея опыта) почему он чаще используется. Но так как чаще - то пытаюсь учить его и вот значит какой вопрос. Есть у меня запрос с объединением нескольких таблиц. Я создал Eloquent моделяи для каждой таблицы, прописал соотношения между ними и пытаюсь с помощь GPT переписать этот запрос, но получаются на 80-90% тоже самое. Это GPT тупит или реально сложные запросы нужно писать через Query Builder и не выкручивать себе мозх?

18 ответов

20 просмотров

елка - связи, а ты сырой запрос пишешь сначала разберись со связями

Oleg- Автор вопроса
Vladyslav
елка - связи, а ты сырой запрос пишешь сначала раз...

Я же писал что GPT мне подсказывает елка-запрос который почти ничем не отличается от сырого. Вот я и спрашиваю это GPT гонит или тут реально никак не упростить?

Oleg
screenshot Я же писал что GPT мне подсказывает елка-запрос ко...

ну а я же писал о том что тебе нужно прочитать документацию ларавеля и разобраться что такое елка и связи

Oleg
screenshot Я же писал что GPT мне подсказывает елка-запрос ко...

chatgpt - чат-бот, а не разработчик. елка - не упрощение/улучшение сырых запросов, это ORM в первую очередь. которая использует QueryBuilder, поэтому тебе бот и написал тот же код только с использованием модели, где table() само подставило. а касательно твоего вопроса - не все выборки пишут на моделях, если тебе ORM не нужна и функциональность елки приносит проблему, то нет проблем отказаться и составить запрос на QB или вообще чистым SQL самому написать. в твоем примере можно на связи перейти. в документации всё есть. у тебя джойнится таблица категорий - это обычная связь. таблица адресов - для выборки, у елки тоже есть методы, что бы выбирать по связи. прежде всегда надо понять что такое ORM в чем ее бонусы и будет понятнее когда ее юзать, а когда нет.

PSYTRGLES
chatgpt - чат-бот, а не разработчик. елка - не упр...

Кстати, получается что если проект разрастается до уровня хайлоад, то нужно запросы ёлки переписывать на DB:: ?🤔 Почему так думаю - ёлка при джоине таблицы делает два отдельных запроса + на уровне пхп соединяет в коллекцию.. а через сырой запрос одним запросом всё

Дмитрий Кондрашов
на ларе бывает хайлоад?

Хз, хз) Как минимум слышал то, что для апи проекта можно отключить веб сессии, и будет чуть быстрее всё летать)

Oleg- Автор вопроса
PSYTRGLES
chatgpt - чат-бот, а не разработчик. елка - не упр...

Спасибо за ответ! Правильно ли я понимаю, что елка упрощает простые запросы к одной таблице или же сохранение/изменение через save(), но если есть запрос с объединением 2 и более таблиц, можно использовать фасад и это не будет считаться говнокодом? Или же если в проекте используется елка и я влезу с фасадом меня зачмырят?

Василий 🇺🇦❤️
Кстати, получается что если проект разрастается до...

"один запрос быстрее двух" - это не обязательно. много мелких запросов против одного жирного. это относительная проблема, особенно если речь начнет заходить о конкурентной среде. "хайлоад" в мире пхп, это все конечно прекрасно, но ларка это жирный жир и не про скорость. а вообще да, отказываются от ORM. иногда имеет смысл сразу написать запрос на чистом билдере, если тебе не нужна вся функциональщина ORM, прирост на чтении более 1К записей обычно сильно выигрывает елку. разница уже заметна на выборках в 100 записей, но вопрос с десятитысячных секунды, а вот на 1К+ уже до сотых-десятых разница будет. "ёлка при джоине таблицы делает два отдельных запроса" нет, join это оператор SQL. два запроса ларка делает в связях. объединение таблицу в одну выборку и загрузка двух таблиц по связи как разные сущности это не одно и тоже. объединять таблицы удобно для агрегаций и сложных выборок, например, фильтраций и если ты хочешь загрузить посты с комментариями, это не значит, что надо джоинить таблицы post и сomments, работать с этим будет не удобно как минимум.

Oleg
Спасибо за ответ! Правильно ли я понимаю, что елка...

имхо, просто так отказываться от елки, если используешь лару - нет смысла. если использование DB оправдано - то это верное решение, как и любое другое. а если грубо, то да, орм это для удобства работы с данными бд на уровне твоего приложения. https://laraway.github.io/eloquent-vs-db/

PSYTRGLES
имхо, просто так отказываться от елки, если исполь...

а если не используешь лару но хочешь использовать елку?

PSYTRGLES
было дело. прекрасно вписалась )))

по итогу свою лару собрал в конце?

Vladislav Bulgakov
по итогу свою лару собрал в конце?

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

Oleg- Автор вопроса
PSYTRGLES
имхо, просто так отказываться от елки, если исполь...

Почитал по ссылке!!! Нифига се разница!!!!! И нафига тогда эта елка нужна? Буду использовать фасад и пусть только меня попробуют упрекнуть ))

Oleg
Почитал по ссылке!!! Нифига се разница!!!!! И нафи...

а она тебе нужна? ты постоянно выбираешь 10К записей?

PSYTRGLES
а она тебе нужна? ты постоянно выбираешь 10К запис...

да причем это тесты из разряда лара в 10000 раз медленее загружается и в пример приводят две строчки запускающие сервер на nodejs без какого либо функционала))

Roman Kolosov
да причем это тесты из разряда лара в 10000 раз ме...

ну там как бы сравнивается запрос через фасад и елку. ну понятно что елка будет дольше работать, там куча абстракций у модели

Похожие вопросы

Обсуждают сегодня

Ребят в СИ можно реализовать ООП?
Николай
32
~ 2m21s  nix shell github:nixos/nixpkgs#stack ~  stack ghc -- --version error: … while calling the 'derivationStrict' builtin at /builtin/derivation.nix:...
Rebuild your mind.
6
Добрый вечер, Пока не совсем понимаю как наладить общение между телеграм ботом и ПО для работы с сим боксом. По самому боту так понял: - Нужен некий баланс, который можно поп...
Magic
6
Всем доброго вечера. Разрабатываю 32 раз. приложение в Delphi. Столкнулся с тем, что стандартный  TFilestream  не работает с большим файлом > 2 ГБайт (после вызова функции see...
Vadim Gl
16
У меня задача: написать брокер сообщений. Очереди и потребители. Очереди поддерживают приоритеты. Очередь отдает сообщения, только обработчикам с соответствующими характеристи...
Aleksandr Filippov
2
добрый день. Подскажите, есть сайт на 1.4.7 и я хочу обновиться, особо ничего не меняя. мне выбирать версию 1.4.35 или третью ветку? и можно ли обновлять "как есть", или нужно...
Digital Cat
12
народ, плиз хелп, всю голову сломал себе уже... разве может быть так, что GetProcAddress( GetModuleHandle( "kernel32.dll" ), "SetThreadDescription" ) вернёт ненулевое значение...
Iluha Companets
12
Всем привет! Имеется функция: function IsValidChar(ch: UTF8Char): Boolean; var i: Integer; ValidChars: AnsiString; begin ValidChars := 'abcdefghijklmnopqrstuvwxyzABCDE...
Евгений
44
Всем доброго вечера. Разрабатываю 32 раз. приложение в Delphi. Столкнулся с тем, что стандартный TFilestream не работает с большим файлом > 2 ГБайт (после вызова функции see...
Vadim Gl
8
а плаксы из-под питона умеют только в комфортных условиях что-то выдавить из себя?)
Lencore
9
Карта сайта