SHiNE-server/shine-server-db/src/main/java/Описание таблиц в БД.md
2025-12-04 12:20:47 +03:00

45 lines
2.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Структура БД SHiNE (кратко)
## Таблица `solana_users`
Локальная копия данных о пользователях из Solana.
Поля:
- `login` (TEXT) — логин пользователя.
- `loginId` (INTEGER, PK) — ID пользователя, основной ключ.
- `bchId` (INTEGER) — ID блокчейна пользователя.
- `pubkey0` (TEXT) — первый публичный ключ.
- `pubkey1` (TEXT) — второй публичный ключ.
- `bchLimit` (INTEGER, NULL) — произвольный лимит для пользователя (опционально).
---
## Таблица `active_sessions`
Активные сессии пользователей (WebSocket/WSS + Web Push).
Поля:
- `sessionId` (INTEGER, PK) — ID сессии, генерируется приложением.
- `session_pwd` (TEXT) — секрет/пароль сессии.
- `loginId` (INTEGER, FK → solana_users.loginId) — владелец сессии.
- `time_ms` (INTEGER) — время создания/активности сессии (мс от эпохи).
- `pubkey_num` (INTEGER) — номер ключа пользователя, которым подписывались данные.
- `push_endpoint` (TEXT, NULL) — endpoint Web Push.
- `push_p256dh_key` (TEXT, NULL) — p256dh-ключ Web Push.
- `push_auth_key` (TEXT, NULL) — auth-ключ Web Push.
---
## Таблица `users_params`
Сохранённые параметры и состояния пользователя (например, до какого сообщения прочитана лента).
Поля:
- `loginId` (INTEGER, FK → solana_users.loginId) — пользователь.
- `param` (TEXT) — имя параметра (ключ).
- `bch_channel_id` (INTEGER, DEFAULT 0) — ID канала/ленты который просмотрен.
- `value` (TEXT, NULL) — значение параметра (строка).
- `time_ms` (INTEGER) — время последнего обновления (мс от эпохи).
- `pubkey_num` (INTEGER) — номер ключа, которым подписано значение.
- `signature` (TEXT, NULL) — подпись значения.
Ограничения:
- `UNIQUE(loginId, param)`у одного пользователя каждый `param` только один раз.