Учет услуг сотовой связи (постановка)
Материал из GedeminWiki
Версия от 06:14, 9 августа 2011; SYSDBA (обсуждение | вклад)
/* * Домены * */ CREATE DOMAIN usr$call_dphone VARCHAR(12) CHECK(VALUE SIMILAR TO '[0-9]{5,12}'); -- ссылка на GD_VALUE usr$call_dvaluekey -- обязательная ссылка на услугу usr$call_dservicekey /* * Все номера телефонов, которые появляются в листинге. * Храним только цифры без разделителей, плюсов, скобок и т.п. * Флагом помечаем номера нашего предприятия. */ CREATE TABLE usr$call_phone ( id dintkey, usr$phone usr$call_dphone, usr$our dboolean_notnull ); /* * Список услуг: телефонный звонок, СМС, звонок в роуминге, * звонок на стационарную сеть и т.п. * Единица измерения услуги -- ссылка на стандартный * справочник GD_VALUE. */ CREATE TABLE usr$call_service ( id dintkey, usr$name dname, usr$valuekey usr$call_dvaluekey ); /* * Хронология звонков, услуг и т.п. * Указывается объем и/или продолжительность. */ CREATE TABLE usr$call_history ( id dintkey, usr$timestamp TIMESTAMP NOT NULL, usr$from usr$call_dphonekey NOT NULL, usr$to usr$call_dphonekey, usr$volume usr$call_dvolume, usr$duration TIME, usr$servicekey usr$call_dservicekey, usr$cost usr$call_dcost NOT NULL ); /* * История перехода СИМ карт из рук в руки. * Если карточка никому не назначена -- * usr$employeekey IS NULL */ CREATE TABLE usr$call_phonelink ( id dintkey, usr$phonekey usr$call_dphonekey NOT NULL, usr$employeekey usr$call_employeekey, usr$fromdate DATE NOT NULL ); /* * Список групп абонентов. * Правила вычета денег привязаны к группам. * */ CREATE TABLE usr$call_group ( id dintkey, usr$name dname ); /* * Привязка номера к группе. * */ CREATE TABLE usr$call_grouplink ( id dintkey, usr$groupkey dintkey, usr$phonekey dintkey, usr$fromdate DATE NOT NULL ); /* * * * */ CREATE TABLE usr$call_grouprule ( id dintkey, usr$name dname, usr$fromdate DATE NOT NULL, usr$servicekey usr$call_dservicekey, )