Учет услуг сотовой связи (постановка)
Материал из GedeminWiki
(Различия между версиями)
SYSDBA (обсуждение | вклад) |
SYSDBA (обсуждение | вклад) |
||
| Строка 1: | Строка 1: | ||
<syntaxhighlight lang="SQL"> | <syntaxhighlight lang="SQL"> | ||
| + | |||
| + | /* | ||
| + | * Домены | ||
| + | * | ||
| + | */ | ||
| + | |||
| + | CREATE DOMAIN usr$call_dphone | ||
| + | VARCHAR(12) | ||
| + | CHECK(VALUE SIMILAR TO '[0-9]{5,12}'); | ||
| + | |||
| + | -- ссылка на GD_VALUE | ||
| + | usr$call_dvaluekey | ||
| + | |||
| + | -- обязательная ссылка на услугу | ||
| + | usr$call_dservicekey | ||
/* | /* | ||
| Строка 38: | Строка 53: | ||
usr$volume usr$call_dvolume, | usr$volume usr$call_dvolume, | ||
usr$duration TIME, | usr$duration TIME, | ||
| − | usr$servicekey usr$call_dservicekey | + | usr$servicekey usr$call_dservicekey, |
usr$cost usr$call_dcost NOT NULL | usr$cost usr$call_dcost NOT NULL | ||
); | ); | ||
| Строка 54: | Строка 69: | ||
usr$fromdate DATE NOT NULL | usr$fromdate DATE NOT NULL | ||
); | ); | ||
| + | |||
| + | /* | ||
| + | * Список групп абонентов. | ||
| + | * Правила вычета денег привязаны к группам. | ||
| + | * | ||
| + | */ | ||
CREATE TABLE usr$call_group ( | CREATE TABLE usr$call_group ( | ||
| − | id | + | id dintkey, |
| − | usr$name | + | usr$name dname |
); | ); | ||
| + | |||
| + | /* | ||
| + | * Привязка номера к группе. | ||
| + | * | ||
| + | */ | ||
CREATE TABLE usr$call_grouplink ( | CREATE TABLE usr$call_grouplink ( | ||
| − | id | + | id dintkey, |
| − | usr$groupkey | + | usr$groupkey dintkey, |
| − | usr$phonekey | + | usr$phonekey dintkey, |
| − | usr$fromdate | + | 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, | ||
| + | |||
| + | ) | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Версия 06:14, 9 августа 2011
/* * Домены * */ 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, )