# Загрузка через промежуточную базу данных
Если ваша архитектура не позволяет удобно отслеживать обновления товаров, можно использовать промежуточную базу данных. Например, картинками занимается один микросервис, ценами - другой, а остальной информацией - третий. В этой ситуации сложно получать данные об изменениях, т.к. необходимо опрашивать несколько микросервисов.
Промежуточная база данных позволит агрегировать всю информацию из нескольких источников в одном месте.
# Структура
Дата обновления и синхронизации
В каждой таблице хранится дата обновления со стороны магазина (updated_at) и дата синхронизации с REES46 (synced_at). Важно обновлять эту информацию только для тех товаров, которые на самом деле были изменены.
Категории
| name | type | comment |
|---|---|---|
| id | varchar | ID категории |
| parent | varchar | ID родительской категории |
| active | boolean | Активность |
| name | varchar | Название |
| url | varchar | Ссылка |
| alias | varchar | Псевдоним |
| updated_at | timestamp = now() | Дата обновления |
| synced_at | timestamp | Дата обработки |
Локации
| name | type | comment |
|---|---|---|
| id | varchar | ID локации |
| parent | varchar | ID родительской локации |
| active | boolean | Активность |
| name | varchar | Название |
| type | varchar | Тип |
| group | varchar | Группа |
| updated_at | timestamp = now() | Дата обновления |
| synced_at | timestamp | Дата обработки |
Товары
| name | type | comment |
|---|---|---|
| id | varchar | ID товара |
| active | boolean | Активность |
| json | text | Объект товара |
| updated_at | timestamp = now() | Дата обновления |
| synced_at | timestamp | Дата обработки |
# Периодичность
Мы рекомендуем синхронизировать данные раз в 5 минут. В большинстве случаев этого времени достаточно для завершения всех этапов. При необходимости вы можете проанализировать лог импорта и изменить период в большую или меньшую сторону.