|
|
Назначение документа:
Для разработки различных утилит для работы с базой данных IServerd
продвинутым пользователям требуется описание ее структуры. Описание состоит
из двух частей: первая (данный документ) содержит список и описания таблиц,
необходимых для нормальной работы сервера.
Разметка базы данных:
Разметка базы данных производится либо самим сервером автоматически, либо
вручную самим пользователем с помощью монитора IControl или утилиты
db_check. Почти все таблицы необходимы для запуска сервера, некоторые
нужны лишь иногда (например таблица register_requests). Все определения,
используемые при разметке находятся в файле database\init_db.h
Список таблиц:
- online_contacts
- таблица, содержащая контакт-листы всех
пользователей (типы записей: normal, visible,
invisible)
- users_deps
- таблица со списком департаментов
для V3 клиентов (в V5 таблица не используется).
- fragment_storage
- таблица, используемая для сборки
фрагментированных пакетов (хранит LO OID фрагментов)
- users_lock
- таблица с текстами блокировочных
надписей для заблокированных учетных записей (смотри
поле ulock в таблице users_info_ext)
- users_messages
- таблица, для хранения отложенных
сообщений (сообщений для неподключенных пользователей)
- online_users
- таблица, содержащая текущую информацию
на всех подключенных к серверу пользователей (IP
адрес, порты серверный и клиентский, время на линии,
параметры соединения.
- users_info_ext
- таблица, содержащая полную информацию
о всех зарегистрированных пользователях и их пароли.
- users_info
- вид таблицы users_info_ext содержащий
лишь часть ее полей. Используется для совместимости
с предыдущими версиями IServerd.
- users
- вид, с ограниченным числом полей, необходим для
удобства ручного поиска в базе (сервером не используется)
- register_requests
- таблица, создаваемая на основе users_info_ext и предназначенная
для хранения регистрационных запросов в ручном режиме регистрации.
Появляется при получении нового регистрациионного запроса.
- login_cookies
- таблица предназначенная для хранения авторизационных и
шифровальных ключей используемых в протоколах V7/V8.
- users_perms
- таблица предназначенная для хранения авторизационных и
разрешений пользователей всех протоколов.
- users_ssi_data
- таблица предназначенная для хранения серверных
контакт-листов и другой пользовательской SSI (Server
Stored Information).
Расширение функциональности:
Пользователи часто просят добавить те или иные поля в таблицу
users_info_ext для различных приложений. Но к счастью в этом нет необходимости так
как целесообразнее создать еще одну таблицу, в которой одним из полей будет "uin".
Для обеспечения целостности данных можно воспользоваться триггерами (подробнее о
триггерах написано в документации к постгрессу).
|