]> git.stg.codes - stg.git/blob - doc/help/ch12.xml
Merge pull request #2 from bobr-kun/MySQL_custom_port
[stg.git] / doc / help / ch12.xml
1 <chapter xml:id="ch12">
2     <title>Приложение В</title>
3         <simplesect>
4         <title>Описание процесса ручной установки БД для СУБД Firebird</title>
5         <para>Для работы модуля необходимо завести учетную запись пользователя СУБД Firebird. Для этого используется утилита управления учетными записями gsec. Пример создания пользователя (подробности: Server configuration and management):</para>
6 <programlisting linenumbering="unnumbered">
7 # gsec -user sysdba -password masterkey
8 GSEC&gt; add stg -pw 123456
9 </programlisting>
10         <para>Для корректной работы модуля пользователь должен иметь право на запись и чтение данных в таблицы БД.</para>
11         <para>Модуль для работы с СУБД Firebird требует наличия правильно созданной базы данных. SQL-скрипт для создания находится в каталоге projects/stargazer/inst/var/00-base-00.sql. В обычных условиях выполнение make install или make install-data автоматически создает базу данных, используя этот скрипт. Для того чтобы создать ее вручную необходимо в файле SQL-скрипта раскомментировать строки:
12 <programlisting linenumbering="unnumbered">
13 connect 'localhost:/var/stg/stargazer.fdb' user 'stg' password '123456';
14 drop database;
15 create database 'localhost:/var/stg/stargazer.fdb' user 'stg' password '123456' default character set win1251;
16 </programlisting>
17         и заменить в них адрес сервера, путь к базу, имя пользователя БД и пароль. После этого выполнить команду isql -i &lt;файл_скрипта&gt;.</para>
18         <formalpara>
19                 <title>Внимание!</title>
20                 <para>Для пользователей Debian и, возможно, некоторых других дистрибутивов командный интерпретатор SQL для СУБД Firebird называется isql-fb.</para>
21         </formalpara>
22         </simplesect>
23         <simplesect>
24         <title>Описание структуры БД для СУБД Firebird</title>
25         <para>Таблица tb_admins (учетные записи администраторов системы):</para>
26         <itemizedlist mark="opencircle">
27                 <listitem><para>pk_admin – уникальный идентификатор учетной записи администратора;</para></listitem>
28                 <listitem><para>login – название учетной записи администратора;</para></listitem>
29                 <listitem><para>passwd – пароль для учетной записи администратора (в зашифрованном виде);</para></listitem>
30                 <listitem><para>chg_conf – флаг, позволяющий менять конфигурационные параметры пользователя;</para></listitem>
31                 <listitem><para>chg_password – флаг, позволяющий менять пароль пользователя;</para></listitem>
32                 <listitem><para>chg_stat – флаг, позволяющий менять статистические данные пользователя;</para></listitem>
33                 <listitem><para>chg_cash – флаг, позволяющий менять количество денег на счету у пользователя;</para></listitem>
34                 <listitem><para>usr_add_del – флаг, позволяющий удалять и добавлять пользователей;</para></listitem>
35                 <listitem><para>chg_tariff – флаг, позволяющий управлять тарифами;</para></listitem>
36                 <listitem><para>chg_admin – флаг, позволяющий управлять учетными записями администраторов системы;</para></listitem>
37                 <listitem><para>chg_service – зарезервировано;</para></listitem>
38                 <listitem><para>chg_corporation – зарезервировано.</para></listitem>
39         </itemizedlist>
40         <para>С таблицей связан триггер tr_admin_bi, выполняющий автогенерацию идентификатора (первичного ключа) учетных записей администраторов системы.</para>
41         <para>Таблица tb_tariffs (описание тарифов):</para>
42         <itemizedlist mark="opencircle">
43                 <listitem><para>pk_tariff – уникальный идентификатор тарифа;</para></listitem>
44                 <listitem><para>name – название тарифа;</para></listitem>
45                 <listitem><para>fee – абонплата;</para></listitem>
46                 <listitem><para>free – количество бесплатных мегабайт трафика, входящих в абонплату;</para></listitem>
47                 <listitem><para>passive_cost – стоимость «заморозки» пользователя;</para></listitem>
48                 <listitem><para>traff_type — тип тарификации трафика:</para>
49                         <itemizedlist mark="square">
50                                 <listitem><para>up+down — входящий и исходящий трафик тарифицируется суммарно;</para></listitem>
51                                 <listitem><para>up — тарифицируется только исходящий трафик;</para></listitem>
52                                 <listitem><para>down — тарифицируется только входящий трафик;</para></listitem>
53                                 <listitem><para>max — тарифицируется большее количество трафика;</para></listitem>
54                         </itemizedlist>
55                 </listitem>
56                 <listitem><para>period — тип абонплаты:</para>
57                         <itemizedlist mark="square">
58                                 <listitem><para>day — ежедневная абонплата (параметр Fee трактуется как значение списываемое ежедневно);</para></listitem>
59                                 <listitem><para>month — ежемесячная абонплата (классическая, параметр Fee трактуется как значение списываемое за месяц, в том числе в режиме SpreadFee);</para></listitem>
60                         </itemizedlist>
61                 </listitem>
62                 <listitem><para>change_policy — политика смены тарифа:</para>
63                         <itemizedlist mark="square">
64                                 <listitem><para>allow — на период действия политики смена тарифного плана разрешена;</para></listitem>
65                                 <listitem><para>to_cheap — на период действия политики разрешена смена тарифного плана на более дешевый;</para></listitem>
66                                 <listitem><para>to_expensive — на период действия политики разрешена смена тарифного плана на более дорогой;</para></listitem>
67                                 <listitem><para>deny — на период действия политики смена тарифного плана запрещена;</para></listitem>
68                         </itemizedlist>
69                 </listitem>
70                 <listitem><para>change_policy_pimeout — момент завершения действия политики тарификации (0 - политика тарификации не завершается никогда);</para></listitem>
71         </itemizedlist>
72         <para>С таблицей связана хранимая процедура sp_add_tariff, получающая в качестве параметров название тарифа и количество направлений. Возвращает сгенерированный идентификатор (первичный ключ) тарифа. При вызове создает запись в таблице tb_tariffs и указанное количество записей в таблице tb_tariffs_params, соответствующее количеству направлений. С таблицей так же связана хранимая процедура sp_delete_tariff, получающая на вход название тарифа и удаляющая его из таблицы tb_tariffs и связанные с ним данные из таблицы tb_tariffs_params.</para>
73         <para>Таблица tb_tariffs_params (параметры тарифов):</para>
74         <itemizedlist mark="opencircle">
75                 <listitem><para>pk_tariff_param – уникальный идентификатор записи информации о направлении в тарифе;</para></listitem>
76                 <listitem><para>fk_tariff – внешний ключ для связи с тарифом;</para></listitem>
77                 <listitem><para>dir_num – номер направления;</para></listitem>
78                 <listitem><para>price_day_a – стоимость 1 Мб трафика днем до превышения порога;</para></listitem>
79                 <listitem><para>price_day_b – стоимость 1 Мб трафика днем после превышения порога;</para></listitem>
80                 <listitem><para>price_night_a – стоимость 1 Мб трафика ночью до превышения порога;</para></listitem>
81                 <listitem><para>price_night_b – стоимость 1 Мб трафика ночью после превышения порога;</para></listitem>
82                 <listitem><para>threshold – порог по трафику;</para></listitem>
83                 <listitem><para>time_day_begins – время начала дня;</para></listitem>
84                 <listitem><para>time_day_ends – время конца дня.</para></listitem>
85         </itemizedlist>
86         <para>С таблицей связан триггер tr_tariffs_params_bi, выполняющий автогенерацию идентификаторов записей (первичных ключей) в таблице.</para>
87         <para>Таблица tb_corporations – зарезервирована.</para>
88         <para>С таблицей связан триггер tr_corporations_bi, выполняющий автогенерацию первичных ключей.</para>
89         <para>Таблица tb_users (учетные записи пользователей системы):</para>
90         <itemizedlist mark="opencircle">
91                 <listitem><para>pk_user – уникальный идентификатор пользователя;</para></listitem>
92                 <listitem><para>fk_tariff – внешний ключ для связи с тарифом;</para></listitem>
93                 <listitem><para>fk_tariff_change – внешний ключ для связи с тарифом (может быть пустым);</para></listitem>
94                 <listitem><para>fk_corporation – зарезервировано;</para></listitem>
95                 <listitem><para>address – адрес пользователя;</para></listitem>
96                 <listitem><para>always_online – флаг «всегда on-line»;</para></listitem>
97                 <listitem><para>credit – величина кредита в деньгах;</para></listitem>
98                 <listitem><para>credit_expire – дата окончания действия кредита;</para></listitem>
99                 <listitem><para>disabled_detail_stat — отключение детальной статистики пользователя;</para></listitem>
100                 <listitem><para>disabled – флаг «отключен»;</para></listitem>
101                 <listitem><para>email – email пользователя;</para></listitem>
102                 <listitem><para>grp – название группы пользователя;</para></listitem>
103                 <listitem><para>note – примечание;</para></listitem>
104                 <listitem><para>passive – флаг «заморозки»;</para></listitem>
105                 <listitem><para>passwd – пароль пользователя (в открытом виде);</para></listitem>
106                 <listitem><para>phone – номер телефона пользователя;</para></listitem>
107                 <listitem><para>name – название учетной записи пользователя (логин);</para></listitem>
108                 <listitem><para>real_name – реальное имя пользователя.</para></listitem>
109         </itemizedlist>
110         <para>С таблицей связана хранимая процедура sp_add_user, принимающая на вход 2 параметра: название учетной записи пользователя и количество направлений. Возвращает сгенерированное значение первичного ключа. При вызове создает запись в таблице tb_users, соответствующую ей запись в таблице tb_stats и указанное количество записей в таблице tb_stats_traffic. Так же с таблицей связана хранимая процедура sp_delete_user, получающая в качестве входного параметра название учетной записи (логин) пользователя и удаляющая учетную запись и всю сопутствующую информацию (данные пользователя, IP-адреса, сообщения, журналы параметров, статистику и детальную статистику, журналы сессий) о пользователе из базы.</para>
111         <para>Таблица tb_detail_stats (детальная статистика по пользователям системы):</para>
112         <itemizedlist mark="opencircle">
113                 <listitem><para>pk_detail_stat – уникальный идентификатор записи детальной статистики;</para></listitem>
114                 <listitem><para>fk_user – внешний ключ для связи с пользователем;</para></listitem>
115                 <listitem><para>dir_num – номер направления;</para></listitem>
116                 <listitem><para>ip – удаленный IP-адрес (в формате 32-битного беззнакового целого);</para></listitem>
117                 <listitem><para>download – количество принятых байт;</para></listitem>
118                 <listitem><para>upload – количество отправленных байт;</para></listitem>
119                 <listitem><para>cost – стоимость объема данных;</para></listitem>
120                 <listitem><para>from_time – время начала сессии;</para></listitem>
121                 <listitem><para>till_time – время завершения сеанса.</para></listitem>
122         </itemizedlist>
123         <para>С таблицей связан триггер tr_detail_stats_bi, выполняющий автогенерацию уникальных идентификаторов записей детальной статистики (первичных ключей).</para>
124         <para>Таблица tb_services – зарезервирована. С ней связан триггер tr_services_bi, выполняющий автогенерацию первичных ключей. Так же с ней связана хранимая процедура sp_delete_service, удаляющая всю информацию связанную с записью в данной таблице.</para>
125         <para>Таблица tb_users_services – зарезервирована. С ней связан триггер tr_users_services_bi, выполняющий автогенерацию первичных ключей.</para>
126         <para>Таблица tb_messages (сообщения пользователям):</para>
127         <itemizedlist mark="opencircle">
128                 <listitem><para>pk_message – уникальный идентификатор сообщения;</para></listitem>
129                 <listitem><para>fk_user – внешний ключ для связи с пользователем;</para></listitem>
130                 <listitem><para>ver – версия формата сообщения;</para></listitem>
131                 <listitem><para>msg_type – тип сообщения;</para></listitem>
132                 <listitem><para>last_send_time – время последней отсылки сообщения;</para></listitem>
133                 <listitem><para>creation_time – время создания сообщения;</para></listitem>
134                 <listitem><para>show_time – время показа сообщения;</para></listitem>
135                 <listitem><para>repeat – количество повторений;</para></listitem>
136                 <listitem><para>repeat_period – период повторения;</para></listitem>
137                 <listitem><para>msg_text – текст сообщения.</para></listitem>
138         </itemizedlist>
139         <para>С таблицей связана хранимая процедура sp_add_message, которая получает на вход идентификатор, параметры и текст сообщения. В случае если идентификатор пустой – сообщение добавляется в таблицу. Если не пустой – параметры и текст сообщения обновляются. Процедура возвращает идентификатор сообщения.</para>
140         <para>Таблица tb_stats (статистика пользователя):</para>
141         <itemizedlist mark="opencircle">
142                 <listitem><para>pk_stat – уникальный идентификатор записи статистики;</para></listitem>
143                 <listitem><para>fk_user – внешний ключ для связи с пользователем;</para></listitem>
144                 <listitem><para>cash – количество денег на счету;</para></listitem>
145                 <listitem><para>free_mb – количество не истраченных бесплатных Мб;</para></listitem>
146                 <listitem><para>last_activity_time – время последней активности пользователя;</para></listitem>
147                 <listitem><para>last_cash_add – последнее пополнение счета;</para></listitem>
148                 <listitem><para>last_cash_add_time – время последнего пополнения счета;</para></listitem>
149                 <listitem><para>passive_time – время, проведенное пользователем в «замороженном» состоянии за месяц (используется для вычисления объема снимаемой абонплаты);</para></listitem>
150                 <listitem><para>stats_date – дата записи статистики (месячной статистики).</para></listitem>
151         </itemizedlist>
152         <para>С таблицей связана хранимая процедура sp_add_stat, получающая на вход набор данных статистики, добавляющая запись в таблицу и возвращающая сгенерированный первичный ключ записи.</para>
153         <para>Таблица tb_stats_traffic (статистика по направлениям):</para>
154         <itemizedlist mark="opencircle">
155                 <listitem><para>pk_stat_traffic – уникальный идентификатор записи статистики;</para></listitem>
156                 <listitem><para>fk_stat – внешний ключ для связи со статистикой пользователя (текущей или месячной);</para></listitem>
157                 <listitem><para>dir_num – номер направления;</para></listitem>
158                 <listitem><para>download – объем входящего трафика;</para></listitem>
159                 <listitem><para>upload – объем исходящего трафика.</para></listitem>
160         </itemizedlist>
161         <para>С таблицей связан триггер tr_stat_traffic_bi, служащий для автогенерации первичного ключа.</para>
162         <para>Таблица tb_users_data (данные пользователя):</para>
163         <itemizedlist mark="opencircle">
164                 <listitem><para>pk_user_data – уникальный идентификатор записи;</para></listitem>
165                 <listitem><para>fk_user – внешний ключ для связи с пользователем;</para></listitem>
166                 <listitem><para>num – номер поля данных;</para></listitem>
167                 <listitem><para>data – текст поля данных.</para></listitem>
168         </itemizedlist>
169         <para>С таблицей связан триггер tr_user_data_bi, служащий для автогенерации первичного ключа.</para>
170         <para>Таблица tb_allowed_ip (IP-адреса пользователя):</para>
171         <itemizedlist mark="opencircle">
172                 <listitem><para>pk_allowed_ip – уникальный идентификатор записи;</para></listitem>
173                 <listitem><para>fk_user – внешний ключ для связи с пользователем;</para></listitem>
174                 <listitem><para>ip – IP-адрес (в формате 32-битного беззнакового целого);</para></listitem>
175                 <listitem><para>mask – маска (в формате 32-битного беззнакового целого).</para></listitem>
176         </itemizedlist>
177         <para>С таблицей связан триггер tr_allowed_ip_bi, служащий для автогенерации первичного ключа.</para>
178         <para>Таблица tb_sessions_log (журнал сессии):</para>
179         <itemizedlist mark="opencircle">
180                 <listitem><para>pk_session_log – уникальный идентификатор записи в журнале;</para></listitem>
181                 <listitem><para>fk_user – внешний ключ для связи с пользователем;</para></listitem>
182                 <listitem><para>event_time – время события;</para></listitem>
183                 <listitem><para>event_type – тип события (connect/disconnect);</para></listitem>
184                 <listitem><para>ip – IP-адрес пользователя.</para></listitem>
185         </itemizedlist>
186         <para>С таблицей связана хранимая процедура sp_append_session_log, получающая в качестве параметров данные для записи в журнал сессии. Добавляет запись в журнал и возвращает сгенерированный первичный ключ.</para>
187         <para>Таблица tb_sessions_data (данные сессии):</para>
188         <itemizedlist mark="opencircle">
189                 <listitem><para>pk_session_data – уникальный идентификатор записи данных;</para></listitem>
190                 <listitem><para>fk_session_log – внешний ключ для связи с записью в журнале сессии;</para></listitem>
191                 <listitem><para>dir_num – номер направления;</para></listitem>
192                 <listitem><para>session_upload – объем исходящего трафика за сессию;</para></listitem>
193                 <listitem><para>session_download – объем входящего трафика за сессию;</para></listitem>
194                 <listitem><para>month_upload – объем исходящего трафика за месяц;</para></listitem>
195                 <listitem><para>month_download – объем входящего трафика за месяц.</para></listitem>
196         </itemizedlist>
197         <para>С таблицей связан триггер tr_session_data_bi, служащий для автогенерации первичного ключа.</para>
198         <para>Таблица tb_parameters (параметры пользователя):</para>
199         <itemizedlist mark="opencircle">
200                 <listitem><para>pk_parameter – уникальный идентификатор параметра;</para></listitem>
201                 <listitem><para>name – название параметра.</para></listitem>
202         </itemizedlist>
203         <para>С таблицей связан триггер tr_parameter_bi, служащий для автогенерации первичного ключа.</para>
204         <para>Таблица tb_params_log (журнал изменений параметров пользователя):</para>
205         <itemizedlist mark="opencircle">
206                 <listitem><para>pk_param_log – уникальный идентификатор записи в журнале изменений параметров пользователя;</para></listitem>
207                 <listitem><para>fk_user – внешний ключ для связи с пользователем;</para></listitem>
208                 <listitem><para>fk_parameter – внешний ключ для связи с таблицей параметров;</para></listitem>
209                 <listitem><para>event_time – время изменения;</para></listitem>
210                 <listitem><para>from_val – старое значение (в виде строки);</para></listitem>
211                 <listitem><para>to_val – новое значение (в виде строки);</para></listitem>
212                 <listitem><para>comment – коментарий.</para></listitem>
213         </itemizedlist>
214         <para>С таблицей связан триггер tr_param_log_bi, служащий для автогенерации первичного ключа.</para>
215          <para>
216          <mediaobject>
217             <imageobject>
218                 <imagedata fileref="images/firebird-erd.png" format="PNG"/>
219             </imageobject>
220         </mediaobject>
221         </para> 
222         </simplesect>
223 </chapter>