4.1. SQL-запросы
4.1.1. Предварительные действия
Прежде, чем приступать к действиям, описанным далее, следует выполнить SQL-запросы к данному шагу.
4.1.2. Создание таблицы для хранения данных клиентов
CREATE TABLE t_clients
(
client_id serial NOT NULL, -- ID записи
dttmcr timestamp with time zone NOT NULL DEFAULT now(), -- Дата и время создания записи
dttmup timestamp with time zone, -- Дата и время изменения записи
dttmcl timestamp with time zone, -- Дата и время закрытия записи
userid integer, -- ID пользователя, создавшего запись
client_name text, -- Имя клиента
client_surname text, -- Фамилия клиента
CONSTRAINT pk_t_clients_client_id PRIMARY KEY (client_id)
);
COMMENT ON TABLE t_clients
IS 'Таблица для хранения информации о клиентах';
COMMENT ON COLUMN t_clients.client_id IS 'ID записи';
COMMENT ON COLUMN t_clients.dttmcr IS 'Дата и время создания записи';
COMMENT ON COLUMN t_clients.dttmup IS 'Дата и время изменения записи';
COMMENT ON COLUMN t_clients.dttmcl IS 'Дата и время закрытия записи';
COMMENT ON COLUMN t_clients.userid IS 'ID пользователя, создавшего запись';
COMMENT ON COLUMN t_clients.client_name IS 'Имя клиента';
COMMENT ON COLUMN t_clients.client_surname IS 'Фамилия клиента';
4.1.3. Создание представления для отображения данных клиентов
CREATE OR REPLACE VIEW vw_clients AS
SELECT t_clients.client_id,
t_clients.dttmcr,
t_clients.dttmup,
t_clients.dttmcl,
t_clients.userid,
t_clients.client_name,
t_clients.client_surname,
(COALESCE(t_clients.client_name, ''::text) || ' '::text) || COALESCE(t_clients.client_surname, ''::text) AS client_fullname
FROM t_clients;
4.1.4. Создание таблицы для хранения типов статусов
CREATE TABLE t_status_types
(
status_type_id serial NOT NULL, -- ID записи
dttmcr timestamp with time zone NOT NULL DEFAULT now(), -- Дата и время создания записи
dttmup timestamp with time zone, -- Дата и время изменения записи
dttmcl timestamp with time zone, -- Дата и время закрытия записи
userid integer, -- ID пользователя, создавшего запись
status_type_name text, -- Наименование типа статуса
CONSTRAINT pk_t_status_types_status_type_id PRIMARY KEY (status_type_id)
);
COMMENT ON TABLE t_status_types
IS 'Таблица для хранения типов статусов';
COMMENT ON COLUMN t_status_types.status_type_id IS 'ID записи';
COMMENT ON COLUMN t_status_types.dttmcr IS 'Дата и время создания записи';
COMMENT ON COLUMN t_status_types.dttmup IS 'Дата и время изменения записи';
COMMENT ON COLUMN t_status_types.dttmcl IS 'Дата и время закрытия записи';
COMMENT ON COLUMN t_status_types.userid IS 'ID пользователя, создавшего запись';
COMMENT ON COLUMN t_status_types.status_type_name IS 'Наименование типа статуса';
4.1.5. Создание таблицы для хранения типов комментариев
CREATE TABLE t_comment_types
(
comment_type_id serial NOT NULL, -- ID записи
dttmcr timestamp with time zone NOT NULL DEFAULT now(), -- Дата и время создания записи
dttmup timestamp with time zone, -- Дата и время изменения записи
dttmcl timestamp with time zone, -- Дата и время закрытия записи
userid integer, -- ID пользователя, создавшего запись
comment_type_name text, -- Наименование типа комментария
CONSTRAINT pk_t_comment_types_comment_type_id PRIMARY KEY (comment_type_id)
);
COMMENT ON TABLE t_comment_types
IS 'Таблица для хранения типа комментариев';
COMMENT ON COLUMN t_comment_types.comment_type_id IS 'ID записи';
COMMENT ON COLUMN t_comment_types.dttmcr IS 'Дата и время создания записи';
COMMENT ON COLUMN t_comment_types.dttmup IS 'Дата и время изменения записи';
COMMENT ON COLUMN t_comment_types.dttmcl IS 'Дата и время закрытия записи';
COMMENT ON COLUMN t_comment_types.userid IS 'ID пользователя, создавшего запись';
COMMENT ON COLUMN t_comment_types.comment_type_name IS 'Наименование типа комментария';
4.1.6. Добавление типов статусов, используемых в системе
INSERT INTO t_status_types (dttmcr, dttmup, userid, status_type_name) VALUES
(now(), now(), 1, 'Заявлено'),
(now(), now(), 1, 'В обработке'),
(now(), now(), 1, 'Ответ'),
(now(), now(), 1, 'Закрыто');
4.1.7. Добавление типов комментариев, используемых в системе
INSERT INTO t_comment_types (dttmcr, dttmup, userid, comment_type_name) VALUES
(now(), now(), 1, 'Входящее письмо'),
(now(), now(), 1, 'Исходящее письмо'),
(now(), now(), 1, 'Комментарий');
4.1.8. Далее