в БД. Есть два решения как это делать:
1) Создать в БД юзера и ограничить его по правам к двум таблицам, и из парсера напрямую грузить данные в БД
2) Создавать на бэкенде эндпойнты для загрузки данных в БД, и уже из парсера обращаться к бэку, а тот будет грузить эти данные в БД
Какое из решений лучше ? У кого как реализовано на проекте ? Мб еще какое-то решение лучшее есть
Спросил у ChatGPT и тот расписал мне такой текст: ————————————————— Оба подхода имеют свои преимущества и недостатки, и выбор между ними зависит от требований вашего проекта. Рассмотрим оба варианта: Создать в БД пользователя с ограниченными правами. Преимущества: Обычно это быстрее, поскольку не требует обращения к бэкенду. Это может быть проще в реализации, если у вас уже есть код для работы с базой данных. Недостатки: Может создать потенциальные проблемы с безопасностью, если учетные данные пользователя утекут. Этот пользователь сможет взаимодействовать с базой данных без какого-либо контроля со стороны вашего приложения, что может привести к неожиданным результатам. Сделать на бэкенде endpoint. Преимущества: Предоставляет больше контроля над тем, какие данные могут быть записаны в базу данных. Упрощает изменение логики записи в базу данных, поскольку она централизована на бэкенде. Позволяет включать дополнительную логику обработки данных на бэкенде, такую как валидация, преобразование данных и т.д. Недостатки: Возможно, будет медленнее из-за дополнительного уровня между клиентом и базой данных. Требует дополнительного кода на бэкенде для обработки запросов. В зависимости от ваших нужд в контроле данных, скорости и сложности реализации, вы можете выбрать подходящий вариант. Оба варианта рабочие, но второй подход обычно предпочтительнее, поскольку он предоставляет больше контроля и гибкости.
Юзера для приложения в любом случае надо создавать, хотя бы чтобы приложение случайно не снесло все таблицы по твоей ошибке (в популярных ORM такой рефреш делается за один вызов функции)
Какая СУБД, какой объём и частота появления данных?
На данный момент MySQL, но в будущем наверное будет PostgreSQL
Кстати, да, вы правы, юзера так и так придется создавать. Но тогда остается вопрос, писать ли через бэкенд ендпойнты и так в будущем и придерживаться такой практики, или же все-таки из каких-то микросервисов напрямую писать в БД через этих же юзеров ?
Если база полноценная типа postgresql, я бы подключался к ней из парсера. Если sqlite (или поддержка такой базы нужна, например, для тестов), так не получится сделать.
Если это стандартный сбор данных с сторонних источников, то оба подхода плохие. Парсер даёт сырые данные, и их писать в основную бд сомнительный подход. Без разница, напрямую, или через апи, сырые данные лучше в буферную бд складывать, где их уже обрабатывают и далее уже складывают в основную бд.
Обсуждают сегодня