X-Git-Url: https://git.stg.codes/stg.git/blobdiff_plain/6b6d9b29e9e9e91f79507a8bf193fb30de311dcc..39c6313308afb248b140d98b8052f1b484549df2:/doc/help/ch12.xml diff --git a/doc/help/ch12.xml b/doc/help/ch12.xml index 31b30250..536dd14f 100644 --- a/doc/help/ch12.xml +++ b/doc/help/ch12.xml @@ -1,4 +1,201 @@ - Приложение В: описание процесса установки БД для СУБД MySQL - Для работы модуля необходимо завести учетную запись пользователя СУБД MySQL. Для этого можно использовать командный интерпретатор mysql: + Приложение В + + Описание процесса ручной установки БД для СУБД Firebird + Для работы модуля необходимо завести учетную запись пользователя СУБД Firebird. Для этого используется утилита управления учетными записями gsec. Пример создания пользователя (подробности: Server configuration and management): + +# gsec -user sysdba -password masterkey +GSEC> add stg -pw 123456 + + Для корректной работы модуля пользователь должен иметь право на запись и чтение данных в таблицы БД. + Модуль для работы с СУБД Firebird требует наличия правильно созданной базы данных. SQL-скрипт для создания находится в каталоге projects/stargazer/inst/var/00-base-00.sql. В обычных условиях выполнение make install или make install-data автоматически создает базу данных, используя этот скрипт. Для того чтобы создать ее вручную необходимо в файле SQL-скрипта раскомментировать строки: + +connect 'localhost:/var/stg/stargazer.fdb' user 'stg' password '123456'; +drop database; +create database 'localhost:/var/stg/stargazer.fdb' user 'stg' password '123456' default character set win1251; + + и заменить в них адрес сервера, путь к базу, имя пользователя БД и пароль. После этого выполнить команду isql -i <файл_скрипта>. + + Внимание! + Для пользователей Debian и, возможно, некоторых других дистрибутивов командный интерпретатор SQL для СУБД Firebird называется isql-fb. + + + + Описание структуры БД для СУБД Firebird + Таблица tb_admins (учетные записи администраторов системы): + + pk_admin – уникальный идентификатор учетной записи администратора; + login – название учетной записи администратора; + passwd – пароль для учетной записи администратора (в зашифрованном виде); + chg_conf – флаг, позволяющий менять конфигурационные параметры пользователя; + chg_password – флаг, позволяющий менять пароль пользователя; + chg_stat – флаг, позволяющий менять статистические данные пользователя; + chg_cash – флаг, позволяющий менять количество денег на счету у пользователя; + usr_add_del – флаг, позволяющий удалять и добавлять пользователей; + chg_tariff – флаг, позволяющий управлять тарифами; + chg_admin – флаг, позволяющий управлять учетными записями администраторов системы; + chg_service – зарезервировано; + chg_corporation – зарезервировано. + + С таблицей связан триггер tr_admin_bi, выполняющий автогенерацию идентификатора (первичного ключа) учетных записей администраторов системы. + Таблица tb_tariffs (описание тарифов): + + pk_tariff – уникальный идентификатор тарифа; + name – название тарифа; + fee – абонплата; + free – количество бесплатных мегабайт трафика, входящих в абонплату; + passive_cost – стоимость «заморозки» пользователя; + traf_type – тип подсчета трафика (upload, download, upload+download, MAX(upload, download)). + + С таблицей связана хранимая процедура sp_add_tariff, получающая в качестве параметров название тарифа и количество направлений. Возвращает сгенерированный идентификатор (первичный ключ) тарифа. При вызове создает запись в таблице tb_tariffs и указанное количество записей в таблице tb_tariffs_params, соответствующее количеству направлений. С таблицей так же связана хранимая процедура sp_delete_tariff, получающая на вход название тарифа и удаляющая его из таблицы tb_tariffs и связанные с ним данные из таблицы tb_tariffs_params. + Таблица tb_tariffs_params (параметры тарифов): + + pk_tariff_param – уникальный идентификатор записи информации о направлении в тарифе; + fk_tariff – внешний ключ для связи с тарифом; + dir_num – номер направления; + price_day_a – стоимость 1 Мб трафика днем до превышения порога; + price_day_b – стоимость 1 Мб трафика днем после превышения порога; + price_night_a – стоимость 1 Мб трафика ночью до превышения порога; + price_night_b – стоимость 1 Мб трафика ночью после превышения порога; + threshold – порог по трафику; + time_day_begins – время начала дня; + time_day_ends – время конца дня. + + С таблицей связан триггер tr_tariffs_params_bi, выполняющий автогенерацию идентификаторов записей (первичных ключей) в таблице. + Таблица tb_corporations – зарезервирована. + С таблицей связан триггер tr_corporations_bi, выполняющий автогенерацию первичных ключей. + Таблица tb_users (учетные записи пользователей системы): + + pk_user – уникальный идентификатор пользователя; + fk_tariff – внешний ключ для связи с тарифом; + fk_tariff_change – внешний ключ для связи с тарифом (может быть пустым); + fk_corporation – зарезервировано; + address – адрес пользователя; + always_online – флаг «всегда on-line»; + credit – величина кредита в деньгах; + credit_expire – дата окончания действия кредита; + disabled_detail_stat — отключение детальной статистики пользователя; + disabled – флаг «отключен»; + email – email пользователя; + grp – название группы пользователя; + note – примечание; + passive – флаг «заморозки»; + passwd – пароль пользователя (в открытом виде); + phone – номер телефона пользователя; + name – название учетной записи пользователя (логин); + real_name – реальное имя пользователя. + + С таблицей связана хранимая процедура sp_add_user, принимающая на вход 2 параметра: название учетной записи пользователя и количество направлений. Возвращает сгенерированное значение первичного ключа. При вызове создает запись в таблице tb_users, соответствующую ей запись в таблице tb_stats и указанное количество записей в таблице tb_stats_traffic. Так же с таблицей связана хранимая процедура sp_delete_user, получающая в качестве входного параметра название учетной записи (логин) пользователя и удаляющая учетную запись и всю сопутствующую информацию (данные пользователя, IP-адреса, сообщения, журналы параметров, статистику и детальную статистику, журналы сессий) о пользователе из базы. + Таблица tb_detail_stats (детальная статистика по пользователям системы): + + pk_detail_stat – уникальный идентификатор записи детальной статистики; + fk_user – внешний ключ для связи с пользователем; + dir_num – номер направления; + ip – удаленный IP-адрес (в формате 32-битного беззнакового целого); + download – количество принятых байт; + upload – количество отправленных байт; + cost – стоимость объема данных; + from_time – время начала сессии; + till_time – время завершения сеанса. + + С таблицей связан триггер tr_detail_stats_bi, выполняющий автогенерацию уникальных идентификаторов записей детальной статистики (первичных ключей). + Таблица tb_services – зарезервирована. С ней связан триггер tr_services_bi, выполняющий автогенерацию первичных ключей. Так же с ней связана хранимая процедура sp_delete_service, удаляющая всю информацию связанную с записью в данной таблице. + Таблица tb_users_services – зарезервирована. С ней связан триггер tr_users_services_bi, выполняющий автогенерацию первичных ключей. + Таблица tb_messages (сообщения пользователям): + + pk_message – уникальный идентификатор сообщения; + fk_user – внешний ключ для связи с пользователем; + ver – версия формата сообщения; + msg_type – тип сообщения; + last_send_time – время последней отсылки сообщения; + creation_time – время создания сообщения; + show_time – время показа сообщения; + repeat – количество повторений; + repeat_period – период повторения; + msg_text – текст сообщения. + + С таблицей связана хранимая процедура sp_add_message, которая получает на вход идентификатор, параметры и текст сообщения. В случае если идентификатор пустой – сообщение добавляется в таблицу. Если не пустой – параметры и текст сообщения обновляются. Процедура возвращает идентификатор сообщения. + Таблица tb_stats (статистика пользователя): + + pk_stat – уникальный идентификатор записи статистики; + fk_user – внешний ключ для связи с пользователем; + cash – количество денег на счету; + free_mb – количество не истраченных бесплатных Мб; + last_activity_time – время последней активности пользователя; + last_cash_add – последнее пополнение счета; + last_cash_add_time – время последнего пополнения счета; + passive_time – время, проведенное пользователем в «замороженном» состоянии за месяц (используется для вычисления объема снимаемой абонплаты); + stats_date – дата записи статистики (месячной статистики). + + С таблицей связана хранимая процедура sp_add_stat, получающая на вход набор данных статистики, добавляющая запись в таблицу и возвращающая сгенерированный первичный ключ записи. + Таблица tb_stats_traffic (статистика по направлениям): + + pk_stat_traffic – уникальный идентификатор записи статистики; + fk_stat – внешний ключ для связи со статистикой пользователя (текущей или месячной); + dir_num – номер направления; + download – объем входящего трафика; + upload – объем исходящего трафика. + + С таблицей связан триггер tr_stat_traffic_bi, служащий для автогенерации первичного ключа. + Таблица tb_users_data (данные пользователя): + + pk_user_data – уникальный идентификатор записи; + fk_user – внешний ключ для связи с пользователем; + num – номер поля данных; + data – текст поля данных. + + С таблицей связан триггер tr_user_data_bi, служащий для автогенерации первичного ключа. + Таблица tb_allowed_ip (IP-адреса пользователя): + + pk_allowed_ip – уникальный идентификатор записи; + fk_user – внешний ключ для связи с пользователем; + ip – IP-адрес (в формате 32-битного беззнакового целого); + mask – маска (в формате 32-битного беззнакового целого). + + С таблицей связан триггер tr_allowed_ip_bi, служащий для автогенерации первичного ключа. + Таблица tb_sessions_log (журнал сессии): + + pk_session_log – уникальный идентификатор записи в журнале; + fk_user – внешний ключ для связи с пользователем; + event_time – время события; + event_type – тип события (connect/disconnect); + ip – IP-адрес пользователя. + + С таблицей связана хранимая процедура sp_append_session_log, получающая в качестве параметров данные для записи в журнал сессии. Добавляет запись в журнал и возвращает сгенерированный первичный ключ. + Таблица tb_sessions_data (данные сессии): + + pk_session_data – уникальный идентификатор записи данных; + fk_session_log – внешний ключ для связи с записью в журнале сессии; + dir_num – номер направления; + session_upload – объем исходящего трафика за сессию; + session_download – объем входящего трафика за сессию; + month_upload – объем исходящего трафика за месяц; + month_download – объем входящего трафика за месяц. + + С таблицей связан триггер tr_session_data_bi, служащий для автогенерации первичного ключа. + Таблица tb_parameters (параметры пользователя): + + pk_parameter – уникальный идентификатор параметра; + name – название параметра. + + С таблицей связан триггер tr_parameter_bi, служащий для автогенерации первичного ключа. + Таблица tb_params_log (журнал изменений параметров пользователя): + + pk_param_log – уникальный идентификатор записи в журнале изменений параметров пользователя; + fk_user – внешний ключ для связи с пользователем; + fk_parameter – внешний ключ для связи с таблицей параметров; + event_time – время изменения; + from_val – старое значение (в виде строки); + to_val – новое значение (в виде строки); + comment – коментарий. + + С таблицей связан триггер tr_param_log_bi, служащий для автогенерации первичного ключа. + + + + + + + +