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