Учет услуг сотовой связи (постановка)

Материал из GedeminWiki
Перейти к: навигация, поиск
/*
 * Домены
 *
 */
 
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,
  usr$comment     dtext1024
);
 
/* 
 *  Привязка номера к группе.
 *  
 */
 
CREATE TABLE usr$call_grouplink (
  id              dintkey,
  usr$groupkey    dintkey,
  usr$phonekey    dintkey,
  usr$fromdate    DATE NOT NULL
);
 
/* 
 *  Правила. 
 *  
 *  
 *  
 *  
 *  
 */
 
CREATE TABLE usr$call_rule (
  id                 dintkey,
  usr$name           dname,
  usr$servicekey     usr$call_dservicekey,
  usr$any_limit      usr$call_dsum,
  usr$work_limit     usr$call_dsum,
  usr$holiday_limit  usr$call_dsum
);
 
 
CREATE TABLE usr$call_grouprule (
  id                 dintkey,
  usr$call_rulekey   usr$call_drulekey,
  usr$call_groupkey  usr$call_dgroupkey,
  usr$fromdate       DATE NOT NULL
);
Персональные инструменты
Пространства имён

Варианты
Действия
Навигация
Инструменты