Старт

This commit is contained in:
AidarKC
2025-12-04 12:20:47 +03:00
commit ff9301eddb
79 changed files with 4655 additions and 0 deletions
@@ -0,0 +1,44 @@
# Структура БД 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` только один раз.