Структура базы данных
Вся информация о клиентах, их трафике, зонах тарификации и тарифах, поступлениях и расходовании средств, а также журнал активности клиентов содержится в базе данных MySQL. База данных содержит следующие таблицы:
- Client
Содержит такие данные о клиенте, как:- IP-адрес и MAC-адрес клиентского компьютера
- текущий баланс клиента
- абонентскую плату, взымаемую с клиента ежемесячно
- скидку в процентах (скидка не распространяется на абонентскую плату)
- признак активности клиента, т.е. наличие доступа в Интернет
- признак возможности клиента работать в кредит
- язык интерфейса пользователя
- User
Реализует возможность задать несколько пользователей для одного клиента (одного IP-адреса), что может быть удобно в организациях, где к одной клиентской машине имеют доступ разные люди. Тем не менее, учет трафика будет производиться для клиентского компьютера без учета пользователей. Таблица содержит:- пароль для доступа к клиентскому модулю (статистика, вкл/выкл доступа в Интернет)
- фамилию, имя и отчество
- домашний адрес и телефон
- признаки необходимости отправки дневного и месячного отчетов
- Income
Содержит информацию о поступлении средств на счета клиентов, а именно дату и время поступления средств и денежную сумму, добавленную на баланс. - Outlay
Содержит информацию о расходовании средств с баланса пользователя. Здесь хранится время, изъятая сумма и описание причины изъятитя (абонентская плата, дополнительные услуги и пр.). Информация о расходовании средст за трафик в эту таблицу не попадает. - Log
Содержит информацию об ошибках, возникших при работе пользователей с системой (с пользовательским модулем). Сюда попадают сообщения о включении и выключении доступа в Интернет самими пользователями, а также об ошибках при активации карт оплаты. - Card
Содержит информацию о неактивированных картах оплаты. При активации карты она немедленно удаляется из этой таблицы. Здесь хранится пароль карты, её номинал (стоимость) и время, когда она была сгенерирована. - Traffic
Эта таблица содержит трафик пользователей по зонам тарификации и периодам учета (месяцам). Т.о. на каждого пользователя в этой таблице существует запись по каждой зоне тарификации, причем каждый месяц эти записи добавляются снова. Это самая быстрорастущая таблица в базе данных. Число записей в ней равно: M1*Z + M2*Z + M3*Z + . . . + Mn*Z, где Mi - количество месяцев, втечение которых пользователь i регистрировался системой, n - количество пользователей в системе, Z - количество зон тарификации (при условии, что количество зон тарификации не изменялось).
Эта таблица осуществляет свзяь "многие-ко-многим" между таблицами Client и Zone. - Zone
Содержит описания зон тарификации. Эта таблица содержит столько записей, сколько зон тарификации создано в системе. Каждая запись содержит имя и описание зоны, стоимость входящего и исходящего трафика в этой зоне, а также порядковый номер зоны при их просмотре сверху вниз. - Address
Содержит описание "содержимого" зон тарификации, т.е. наборы IP-сетей и портов, входящих в зоны. - Port
Сопоставляет один или несколько портов заданным в таблице Address IP-сетям.