# Описание схемы данных
# Доступные схемы и таблицы

### ProcessingOrders

:::danger
  В текущей реализации не экспортируются дополнительные поля заказов, дополнительные поля позиций заказов и информация о скидочных промоакциях в заказах.
:::

Схема содержит информацию о заказах, баллах, промоакциях, позициях заказов

| Таблица                              | Описание                                     | Ключ                          |
| :----------------------------------- | :------------------------------------------- | :---------------------------- |
| BonusPointChanges_v3                    | События изменений балансов баллов клиентов   | id                            |
| BonusPointsMechanics                 | Справочник балльных промоакций               | id                            |
| NegativeCustomerBalanceChangeDetails_v3 | Связь между списаниями и начислениями баллов | id                            |
| Balances                             | Справочник балльных счетов                   | id                            |
| Orders                               | Заказы клиентов                              | id                            |
| Purchases                            | Состав заказов клиентов                      | orderId + lineNumber / lineId |
| PurchaseStatuses                     | Справочник статусов позиций заказов          | internalId                    |
| PointsOfContact                      | Справочник точек контакта                    | id                            |
| ExternalIds                          | Внешние идентификаторы заказов               | id                            |

### Mailings

Схема содержит информацию о рассылках, действиях с рассылками (открытия/клики/недоставки и тп)

| Таблица                  | Описание                                          | Ключ            |
| :----------------------- | :------------------------------------------------ | :-------------- |
| Mailings                 | Справочник рассылок                               | id              |
| SubscriptionTopics       | Справочник тематик рассылок                       | internalId      |
| CustomerMessagesStatuses | Статусы рассылок (открытия/клики/недоставки и тп) | messageStatusId |
| MailingsTags             | Теги в рассылках                                  | id              |

### CDP

Схема содержит общую информацию

| Таблица                    | Описание                                           | Ключ                                  |
| :------------------------- | :------------------------------------------------- | :------------------------------------ |
| MergedCustomers            | Объединения клиентов                               | unmergedCustomerId + mergedCustomerId |
| Folders                    | Справочник папок                                   | internalId                            |
| Segmentations              | Справочник сегментаций                             | id                                    |
| Segments                   | Справочник сегментов                               | id                                    |
| CustomerSegmentHistory     | История сегментов клиентов                         | id                                    |
| Tags                       | Справочник тегов действий/рассылок                 | internalId                            |
| CustomFieldsKinds          | Справочник дополнительных полей                    | internalId                            |
| ExternalCustomerIdsHistory | История изменений внешних идентификаторов клиентов | id                                    |
| ActionCategories           | Справочник категорий действий                      | internalId                            |
| ActionTemplates            | Справочник шаблонов действий                       | internalId                            |
| ActionTemplateTags         | Теги в шаблонах действий                           | actionTemplateInternalId + tagInternalId |
| Channels                   | Справочник каналов                                 | internalId                            |
| PromoCodePools             | Справочник пулов промокодов                        | internalId                            |
| PromoCodes                 | Промокоды                                          | internalId                            |
| ExternalSystems            | Справочник внешних систем                          | internalId                            |

### AbTests

Схема содержит информацию об АБ-тестах, их вариантах и участниках АБ-тестов (сейчас только участники АБ-тестов сценариев)

| Таблица                     | Описание                       | Ключ                                      |
| :-------------------------- | :----------------------------- | :---------------------------------------- |
| AbTests                     | Справочник АБ-тестов           | internalId                                |
| AbTestVariants              | Справочник вариантов АБ-тестов | abTestId                                  |
| ScenariosAbTestParticipants | Участники АБ-тестов            | unmergedCustomerId + abTestId / variantId |

### PDP

Схема содержит информацию о каталоге продуктов

| Таблица                 | Описание                         | Ключ                                         |
| :---------------------- | :------------------------------- | :------------------------------------------- |
| ProductExternalIds      | Внешние идентификаторы продуктов | productInternalId + externalSystemInternalId |
| ProductCategories       | Справочник категорий продуктов     | internalId                                   |
| ProductCategoryProducts | Продукты в категориях              | productInternalId + productCategoryInternalId |

### Scenarios

Схема содержит информацию о сценариях, их версиях и блоках

| Таблица               | Описание                       | Ключ                            |
| :-------------------- | :----------------------------- | :------------------------------ |
| Scenarios             | Справочник сценариев           | id                              |
| ScenarioVersions      | Справочник версий сценариев    | id                              |
| ScenarioVersionBlocks | Справочник блоков сценариев    | scenarioId + version + blockId  |

### Personalization

Схема содержит информацию о механиках персонализации сайта, их показах и кликах по ним

| Таблица   | Описание                                | Ключ |
| :-------- | :-------------------------------------- | :--- |
| Mechanics | Справочник механик персонализации       | Id   |
| Views     | Показы механик персонализации           | id   |
| Clicks    | Клики по механикам персонализации       | id   |

### Зачем нужен ключ?

Чтобы получить последнее состояние сущности или состояние сущности на какой-то момент времени, вам потребуется ключ - по нему будут происходить группировка строк в таблице и отбор подходящих значений.

Рассмотрим пример: вы уже скачали данные по заказу id198123, но сегодня вместе с экспортом пришла информация об обновлении заказа. Как получить только одну актуальную запись? Для этого можно воспользоваться, например, вот таким скриптом:

```sql
SELECT * 
FROM 
Orders --таблица заказов
ORDER BY 
Orders._rowversion_ts DESC --сотрируем таблицу с заказами по дате изменения
LIMIT 1 BY Orders.id --берем одну строку для каждого уникального id
```

# Схема таблиц

![Схема экспортных таблиц](/images/exports-schema.jpg)

<br />

<br />
