Фізична модель збереження зберігання даних

🌐 Цей документ доступний українською та англійською мовами. Використовуйте перемикач у правому верхньому куті, щоб змінити версію.

В рамках реалізації функціональних вимог, необхідно створити окрему схему NOTIFICATIONS та розширити фізичну модель додатковими таблицями:

  • NOTIFICATION_TEMPLATE - зберігання даних шаблонів повідомлень

  • NOTIFICATION_TEMPLATE_ATTR - зберігання додаткових атрибутів шаблонів в залежності від вимог окремого каналу зв’язку

  • INBOX_NOTIFICATION - зберігання in-app повідомлень користувачів для відображення у Кабінеті Громадянина

Diagram

1. Структури даних

1.1. Структура даних шаблонів повідомлень (NOTIFICATION_TEMPLATE)

Поле Тип Обмеження Значення за замовчуванням Опис

ID

UUID

Primary Key

uuid_generate_v4()

Унікальний автоматично згенерований ідентифікатор запису

NAME

TEXT

Not Null, Unique Constraint*

-

Службова назва шаблону повідомлення

CHANNEL

ENUM

Not Null, Unique Constraint*, [inbox, email, diia]

-

Канал зв’язку для використання шаблону повідомлення

TITLE

TEXT

-

-

Текстовий заголовок повідомлення

CONTENT

TEXT

Not Null

-

Текстовий шаблон тіла повідомлення для подальшого заповнення даними

CHECKSUM

TEXT

Not Null

-

SHA-256 чек-сума, згенерована на вміст поля CONTENT

CREATED_AT

TIMESTAMP

Not Null

now()

Дата/Час створення/публікації шаблону

UPDATED_AT

TIMESTAMP

Not Null

now()

Дата/Час останньої зміни в рамках публікації шаблону

EXT_TEMPLATE_ID

TEXT

Unique Constraint

-

Унікальний ідентифікатор запису у зовнішній системі

EXT_PUBLISHED_AT

TIMESTAMP

-

Дата/Час останньої публікації запису у зовнішню систему

1.2. Структура даних атрибутів шаблонів повідомлень (NOTIFICATION_TEMPLATE_ATTR)

Поле Тип Обмеження Значення за замовчуванням Опис

ID

UUID

Primary Key

uuid_generate_v4()

Унікальний автоматично згенерований ідентифікатор запису

TEMPLATE_ID

UUID

Not Null, Foreign Key

-

Зв’язок з записом NOTIFICATION_TEMPLATE

NAME

TEXT

Not Null

-

Службова назвав атрибуту

VALUE

TEXT

Not Null

-

Значення атрибуту

1.3. Структура даних in-app повідомлень INBOX_NOTIFICATION

Поле Тип Обмеження Значення за замовчуванням Опис

ID

UUID

Primary Key

uuid_generate_v4()

Унікальний автоматично згенерований ідентифікатор запису

RECIPIENT_ID

TEXT

Not Null

-

Ідентифікатор користувача, який має отримати повідомлення

SUBJECT

TEXT

Not Null

-

Заголовок повідомлення

MESSAGE

TEXT

Not Null

-

Зміст повідомлення

IS_ACKNOWLEDGED

BOOLEAN

Not Null

false

Статус повідомлення (прочитане/не прочитане)

CREATED_AT

TIMESTAMP

Not Null

now()

Дата/Час створення повідомлення

UPDATED_AT

TIMESTAMP

Not Null

now()

Дата/Час оновлення повідомлення

2. Ролі/системні користувачі БД

Для обслуговування операцій взаємодії з БД, необхідно створити ролі/користувачів з визначеними правами доступу для використання відповідними компонентами системи:

Компонент системи Роль/Користувач Привілегії

notification-service

notification_service_user

GRANT SELECT, INSERT, UPDATE, DELETE ON NOTIFICATION_TEMPLATE

GRANT SELECT, INSERT, UPDATE, DELETE ON NOTIFICATION_TEMPLATE_ATTR

GRANT SELECT, INSERT, UPDATE, DELETE ON INBOX_NOTIFICATION