Size: a a a

2020 March 22

I

Igor in Laravel Pro
к примеру главную youla
источник

P

PSYTRGLES in Laravel Pro
что значит "дизайн"?
CTRL+S
источник

J

Joker_V in Laravel Pro
День добрый, коллеги! Такой вопрос, архитектурный:
У меня есть главная бд с которой я работаю через orm, т.е. через модели. И другие, что будут поключатся динамически (хз сколько), имеющие одинаковую структуру. С этими базами я думаю работать через конструктор запросов с помощью репозитория.
Вопрос: стоит ли мне работу с основной бд переводить тоже в репоритории, или продолжать работать через orm?
источник

YV

Yushkevich Vitaly in Laravel Pro
Joker_V
День добрый, коллеги! Такой вопрос, архитектурный:
У меня есть главная бд с которой я работаю через orm, т.е. через модели. И другие, что будут поключатся динамически (хз сколько), имеющие одинаковую структуру. С этими базами я думаю работать через конструктор запросов с помощью репозитория.
Вопрос: стоит ли мне работу с основной бд переводить тоже в репоритории, или продолжать работать через orm?
1) работа через orm не противоречит работе через репозитория
2) в чем вопрос? Нужно ли перенести логику из моделей (?) в репозитории?
3) никто не мешает в рантайме создавать новые коннекты к бд и продолжать работать «через модели». Это больше вопрос удобства / производительности / эффективности
источник

YV

Yushkevich Vitaly in Laravel Pro
Если правильно понял вопрос, то я всю логику работы с бд выношу в отдельный слой «репозитория». Даже если оттуда идёт запрос в eloquent.  Как минимум это позволяет сделать код более удобным для тестирования
источник

J

Joker_V in Laravel Pro
Yushkevich Vitaly
Если правильно понял вопрос, то я всю логику работы с бд выношу в отдельный слой «репозитория». Даже если оттуда идёт запрос в eloquent.  Как минимум это позволяет сделать код более удобным для тестирования
Тут многие очень уважаемые люди пишут, что если ты работаешь с репами - то ты валинок в орм. Но это так... Я вот все же вынесу в слой репозитория работу с бд, так действительно даже тестировать проще
источник

J

Joker_V in Laravel Pro
Yushkevich Vitaly
Если правильно понял вопрос, то я всю логику работы с бд выношу в отдельный слой «репозитория». Даже если оттуда идёт запрос в eloquent.  Как минимум это позволяет сделать код более удобным для тестирования
Если б было 2 бд, а не хз сколько я бы наверно работал с моделью
источник

YV

Yushkevich Vitaly in Laravel Pro
Joker_V
Тут многие очень уважаемые люди пишут, что если ты работаешь с репами - то ты валинок в орм. Но это так... Я вот все же вынесу в слой репозитория работу с бд, так действительно даже тестировать проще
Уважаемые люди тоже могут ошибаться. Если у тебя есть ответы на вопросы «почему ты так делаешь» и «почему ты делаешь именно так», то ты имеешь полное право так делать.  
Репозиторий - не совсем корректный термин. Формально - это работа с коллекциями. Туда же пихают и store и что угодно. Но допустим.
У тебя есть единый слой работы с бд, из твоего метода репозиторий ничего не мешает сделать условно return User::get()
источник

YV

Yushkevich Vitaly in Laravel Pro
А работать там через модели или через DB, и опять же - через DB::raw() или же через методы - тоже отдельный вопрос
источник

YV

Yushkevich Vitaly in Laravel Pro
Через фасад бд будет работать быстрее, чем через модели. Это факт. Где то на 10-25% при условии одинаковых запросов. При том, что не все можно (удобно) сделать через orm. У orm есть свои преимущества. Обычно они заканчиваются, когда заканчивается быстрее проектирование mvp и начинается нагрузка, но это отдельная история
источник

J

Joker_V in Laravel Pro
Yushkevich Vitaly
А работать там через модели или через DB, и опять же - через DB::raw() или же через методы - тоже отдельный вопрос
Ок. Мне этого достаточно! Спасибо
источник

J

Joker_V in Laravel Pro
Yushkevich Vitaly
Через фасад бд будет работать быстрее, чем через модели. Это факт. Где то на 10-25% при условии одинаковых запросов. При том, что не все можно (удобно) сделать через orm. У orm есть свои преимущества. Обычно они заканчиваются, когда заканчивается быстрее проектирование mvp и начинается нагрузка, но это отдельная история
За это вообще спасибо
источник

YV

Yushkevich Vitaly in Laravel Pro
Joker_V
Если б было 2 бд, а не хз сколько я бы наверно работал с моделью
Где то 1-2 недели назад я делал систему шардирования чатов. В мастер базе были таблицы серверов с параметрами доступ, бакеты и их маппинг.

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

YV

Yushkevich Vitaly in Laravel Pro
Проблем не заметил, ну кроме доп запросов. Но тут по другому никак (ну из файлов можно было бы брать, но не суть)
источник

J

Joker_V in Laravel Pro
Yushkevich Vitaly
Где то 1-2 недели назад я делал систему шардирования чатов. В мастер базе были таблицы серверов с параметрами доступ, бакеты и их маппинг.

В рантайме создавал коннект и подключался к нужной бд
У меня проще. Структура всех таблиц с разных источников одинакова.
источник

YV

Yushkevich Vitaly in Laravel Pro
Joker_V
У меня проще. Структура всех таблиц с разных источников одинакова.
Так при шардинге тоже :)
источник

J

Joker_V in Laravel Pro
Yushkevich Vitaly
Проблем не заметил, ну кроме доп запросов. Но тут по другому никак (ну из файлов можно было бы брать, но не суть)
В бд будет держаться только данные коннекта
источник

YV

Yushkevich Vitaly in Laravel Pro
Joker_V
В бд будет держаться только данные коннекта
источник

YV

Yushkevich Vitaly in Laravel Pro
И дальше onConnection
источник

PF

Petr Filippov in Laravel Pro
шардинг у вас в приложении прям идет?
источник