Как лучше обновить записи в таблице используя данные с внешнего источника?

Приветствую!
Есть внешний сервис у которого я запрашиваю сущности с их свойствами по API. Полученные данные мне надо использовать на своем портале, поэтому я кладу их в БД. БД необходима что бы: 1) по каждому чиху не лезть в API т.к. это долго. 2)в таблице, помимо полученных данных будут хранится всякие "опции", которые я сам буду проставлять.
из пункта 2 следует, что я не могу при каждом запросе чистить таблицу и заполнять ее заново.
Сейчас я это делаю с помощью Python: проверку на удаленные сущности делаю используя set'ы (в одном сете содержимое таблицы, в другом - полученные данные, при вычитании set'ов нахожу удаленные), для каждой полученной сущности я проверяю ее присутствие в таблице (простым селектом по уникальному id) ну и если есть, то "слепо" апдейтю полученные свойства, либо инсертю в таблицу. Код светить не хочу, но могу по запросу показать. Вопроc собственно вот в чем: правильно ли это делать в приложении, а не, например, хранимками в СУБД? есть ли лучшие алгоритмы реализации таких задач?
  • Вопрос задан
  • 2518 просмотров
Пригласить эксперта
Ответы на вопрос 2
yttrium
@yttrium
вообще хорошо когда логика в одном месте сосредоточена, программа становится более переносимая..
а организовать логику в СУБД можно в том случае если хранилищe будет имитировать обычные таблицы, будет притворяться простым.. ну типа на view навешиваем триггеры insert, update, delete
Ответ написан
Комментировать
@Timosha
я делаю так, всё что пришло из API кладу во временную таблицу, а потом уже запросами обновляю/удаляю/вставляю. по мне так гораздо гибче и дешевле делать join в СУБД чем делать примерно то же самое множественными запросами на питоне. плюс в postgresql есть foreign data wrappers и можно из хранимки напрямую обращаться ко всяким api как к таблице минуя всякие питоны
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы