daster/database/script.sql

63 lines
2.0 KiB
MySQL
Raw Normal View History

2023-05-29 14:40:53 +00:00
create table if not exists "groups" (
"name" varchar(20) not null,
"comment" varchar(100) default null,
constraint groups_pk primary key ("name")
);
insert into "groups" ("name", "comment")
values
('general', 'Общие контакты'),
('work', 'Рабочие контакты'),
('personal', 'Личные контакты');
create table if not exists lists (
"name" varchar(20) not null,
"comment" varchar(100) default null,
constraint lists_pk primary key ("name")
);
insert into lists ("name", "comment")
values
('general', 'Общий список'),
('whitelist', 'Белый список'),
('blacklist', 'Черный список');
create table if not exists numbers (
"number" varchar(12) not null,
"group" varchar(20) not null default 'general',
list varchar(20) not null default 'general',
all_cc int not null default 0,
white_cc int not null default 0,
black_cc int not null default 0,
"comment" varchar(100) default null,
constraint numbers_pk primary key ("number"),
foreign key ("group") references "groups" ("name") on delete set null on update cascade,
foreign key (list) references lists ("name") on delete set null on update cascade
);
create table if not exists sms (
id bigserial not null,
"date" timestamp not null default NOW(),
"to" varchar(12) not null,
"from" varchar(12) not null,
"text" text not null,
constraint sms_pk primary key (id)
);
create table if not exists ussd (
id bigserial not null,
"date" timestamp not null default NOW(),
"to" varchar(12) not null,
"type" smallint not null,
"text" text not null,
constraint ussd_pk primary key (id)
);
create table if not exists "server" (
address varchar(50) not null,
transparent_mode bool not null default false,
internal_number varchar(12) not null,
external_number varchar(12) not null,
constraint server_pk primary key (address)
);