Фізична модель збереження зберігання даних
🌐 Цей документ доступний українською та англійською мовами. Використовуйте перемикач у правому верхньому куті, щоб змінити версію. |
В рамках реалізації функціональних вимог, необхідно створити окрему схему NOTIFICATIONS та розширити фізичну модель додатковими таблицями:
-
NOTIFICATION_TEMPLATE - зберігання даних шаблонів повідомлень
-
NOTIFICATION_TEMPLATE_ATTR - зберігання додаткових атрибутів шаблонів в залежності від вимог окремого каналу зв’язку
-
INBOX_NOTIFICATION - зберігання in-app повідомлень користувачів для відображення у Кабінеті Громадянина
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 |