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

2.4 KiB
Raw Blame History

Структура БД 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 только один раз.