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

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

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

18 ответов

12 просмотров

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

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 раз ме...

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

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

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

А как старый хаскел с новым стыковать ? потому как тут работает https://play.haskell.org/saved/C3xpMzcd, а вот тут https://stepik.org/lesson/7602/step/9?unit=1473 нет ошибка C...
Fedor
131
Ребят, что лучше для реверса: гидра или ида?
En Vind Av Sorg
26
Вопрос я правильно понимаю что в коде newtype ArrowMap k v = ArrowMap { getArrowMap :: k -> Maybe v } getArrowMap есть функция типа k -> Maybe v, если да, то не понимаю задач...
Fedor
64
Делаю велосипед логгер. К сообщению хочу прикрутить некоторую информацию, типа, кем отправлено, какой уровень, и всякое такое. И тут подумалось мне, почему бы не хранить весь...
Serjone
24
Как Вы считаете нормально ли в двадцатых годах 21 века в ВУЗах Российской Федерации обучать студентов работе с TASM? Не слишком ли это "архаично"? (Если оффтоп или флейм для э...
Spiker01
52
а не подскажете вот это скрин из какой IDE ?
Iluha Companets
14
Комрады, хотел уточнить. Проперть в OnDestroy юнита-хозяина по-прежнему доступна? И еще уточнение: finalization юнита наступает раньше или позже OnDestroy?
Ed Doc
48
Продолжая диалог про свифт в проде – сейчас возник вопрос в активном наборе бекендеров. В основном в нашей компании мы фанаты Java Spring и полностью ей довольны. Однако найм ...
Guseyn
27
Народ всем привет Подскажите, как включить самописные dll библиотеки в итоговую сборку Сейчас при запуске dev сервера локально формируется папка build, из которой запускается...
Андрей
4
Комрады, подскажите, в дельфях есть компоненты а-ля TDirectorySelect?
Ed Doc
15
Карта сайта