Перейти к основному содержимому

ERD программы лояльности

Диаграмма «сущность–связь»

PlantUML диаграмма

Связи и бизнес-правила

СвязьТипБизнес-правило
t.loyalty_programt.partner1:NВ одной программе лояльности (GPB_MVP) участвует много партнёров: Газпромнефть, Gorod Pay, Шоколадница…
t.clientt.consent1:1У клиента не более одного действующего согласия на обработку данных; уникальность гарантирует ограничение UQ по client_id.
t.clientt.charge_off_operation1:NОдин клиент совершает много операций списания/отмены.
t.partnert.charge_off_operation1:NУ каждого партнёра много операций по его клиентам.
t.clientt.partner (через t.charge_off_operation)N:MКлиент покупает у многих партнёров, партнёр обслуживает многих клиентов. «Факт покупки» и есть операция — таблица-ассоциация с собственными атрибутами (сумма, тип, статус).
t.partnert.role (через t.partner_role)N:MПартнёрам-тенантам выдаются роли доступа к API (b2b-user-loyalty-system-read/write). Классическая связующая таблица с составным первичным ключом.

Как читать схему

  • <<PK>> — первичный ключ, <<FK>> — внешний ключ, <<UQ>> — ограничение уникальности.
  • * перед полем — NOT NULL.
  • Зелёным выделены справочно-разрешительные сущности (согласия, роли), оранжевым — связующая таблица N:M.
  • Операция списания — центр схемы: она связывает клиента, партнёра и несёт финансовый факт (сумма баллов), поэтому все отчёты и метрики строятся от неё.