Базы данных
Система ЛиманИ СУ 2.0 использует две СУБД:
- PostgreSQL 14 -- реляционная СУБД для хранения конфигурационных данных, справочников и управления пользователями
- ClickHouse 24.2.1 -- колонковая СУБД для хранения и анализа телеметрических данных
Обзор схем
| СУБД | Схема | Назначение |
|---|---|---|
| PostgreSQL | lisu | Основная схема: пользователи, роли, дерево объектов, измерительные точки, журналы |
| PostgreSQL | defects_reference_book | Справочник типов дефектов оборудования |
| PostgreSQL | bearing_reference_book | Справочник подшипников качения |
| ClickHouse | default | Телеметрия, события, дефекты, прогнозы, тренды |
PostgreSQL -- схема lisu
Основная схема системы. Содержит данные о пользователях, иерархии объектов, измерительных точках, журналах событий и техобслуживания.
users -- Пользователи
Хранение учетных записей пользователей системы.
| Поле | Тип | PK/FK | Описание |
|---|---|---|---|
| id | BIGINT | PK | Уникальный идентификатор пользователя |
| lastname | VARCHAR(60) | Фамилия | |
| name | VARCHAR(60) | Имя | |
| patronymic | VARCHAR | Отчество | |
| username | VARCHAR | Логин для входа | |
| password | VARCHAR | Хэш пароля | |
| VARCHAR | |||
| phone | VARCHAR(20) | Номер телефона | |
| position | VARCHAR | Должность | |
| email_notification | BOOLEAN | Включена ли email-нотификация (по умолчанию false) | |
| sms_notification | BOOLEAN | Включена ли SMS-нотификация (по умолчанию false) | |
| verified | BOOLEAN | Подтверждена ли учетная запись (по умолчанию false) | |
| active | BOOLEAN | Активен ли пользователь (по умолчанию false) | |
| time_zone | VARCHAR(20) | Часовой пояс | |
| lang | SMALLINT | Язык интерфей са (по умолчанию 0) | |
| created | TIMESTAMP | Дата и время регистрации | |
| password_exp_date | TIMESTAMP | Дата истечения срока действия пароля | |
| type_notification | JSONB | Типы оповещений (гибкая структура) | |
| active_sending_reports | BOOLEAN | Отправлять ли отчеты (по умолчанию false) | |
| period_sending_reports | INTEGER | Период отправки отчетов в днях (по умолчанию 1) | |
| last_sending_reports | TIMESTAMP | Дата последней отправки отчета |
Связи:
user_role(многие-ко-многим): пользователь может иметь несколько ролей (ON DELETE CASCADE)user_hash_history(один-ко-многим): история паролей (ON DELETE CASCADE)journal(один-ко-многим): события аудитаpermission(один-ко-многим): права доступа к объектам дерева (ON DELETE CASCADE)
Триггеры:
after_create_password_trigger-- при создании пользователя добавляет хэш пароля в историюafter_update_password_trigger-- при смене пароля добавляет новый хэш в историю (если не дублируется)