You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

576 lines
21 KiB

5 months ago
-- SQL Manager for PostgreSQL 6.4.1.56163
-- ---------------------------------------
-- Host : eci-db1-dev.eci.local
-- Database : cscd
-- Version : PostgreSQL 14.7 on x86_64-pc-linux-gnu, compiled by gcc (AstraLinuxSE 8.3.0-6) 8.3.0, 64-bit
CREATE SCHEMA pls AUTHORIZATION d79276;
SET check_function_bodies = false;
--
-- Structure for table entity :
--
SET search_path = pls, pg_catalog;
CREATE TABLE pls.entity (
entity_id integer DEFAULT nextval('entity_ent_id_seq'::regclass) NOT NULL,
rentity_type_id integer,
ts_deleted timestamp without time zone,
user_deleted varchar(50),
chatroom_uuid uuid
)
WITH (oids = false);
--
-- Structure for table ref_entity_type :
--
CREATE TABLE pls.ref_entity_type (
rentity_type_id integer DEFAULT nextval('entity_types_ent_type_id_seq'::regclass) NOT NULL,
rentity_type_name varchar(255),
rentity_type_label varchar(255),
rroute_id integer
)
WITH (oids = false);
--
-- Definition for type attr_type :
--
CREATE TYPE pls.attr_type AS ENUM (
'string', 'date', 'number', 'dict', 'outer', 'longstring', 'bool', 'file'
);
--
-- Structure for table ref_attr :
--
CREATE TABLE pls.ref_attr (
rattr_id serial NOT NULL,
rattr_name varchar(255),
rattr_type attr_type,
rattr_label varchar(255),
rattr_required boolean,
rattr_system boolean,
rattr_group_id integer,
rattr_no smallint,
rattr_view boolean,
rattr_multilple boolean
)
WITH (oids = false);
--
-- Structure for table entity_attr :
--
CREATE TABLE pls.entity_attr (
entity_attr_id integer DEFAULT nextval('entity_attr_ent_attr_id_seq'::regclass) NOT NULL,
rattr_id integer,
entity_id integer,
entity_attr_value varchar
)
WITH (oids = false);
--
-- Structure for table ref_attr_group :
--
CREATE TABLE pls.ref_attr_group (
rattr_group_id integer DEFAULT nextval('ref_attr_group_rag_id_seq'::regclass) NOT NULL,
rattr_group_name varchar(255),
rattr_group_label varchar(255),
rattr_group_no smallint,
rentity_type_id integer
)
WITH (oids = false);
--
-- Structure for table entity_stage :
--
CREATE TABLE pls.entity_stage (
entity_stage_id serial NOT NULL,
rstage_id integer,
entity_id integer
)
WITH (oids = false);
--
-- Structure for table ref_stage :
--
CREATE TABLE pls.ref_stage (
rstage_id serial NOT NULL,
rstage_name varchar(255),
rstage_label varchar(255),
rentity_type_id integer,
rstage_wait_others boolean,
rroute_id integer NOT NULL
)
WITH (oids = false);
--
-- Structure for table ref_actor :
--
CREATE TABLE pls.ref_actor (
ractor_id serial NOT NULL,
ractor_auth_group_name varchar(255),
ractor_label varchar(255)
)
WITH (oids = false);
--
-- Structure for table ref_stage_action :
--
CREATE TABLE pls.ref_stage_action (
rstage_action_id integer DEFAULT nextval('ref_stage_actor_ref_stage_actor_id_seq'::regclass) NOT NULL,
rstage_id integer,
raction_id integer
)
WITH (oids = false);
--
-- Structure for table ref_attr_dict :
--
CREATE TABLE pls.ref_attr_dict (
rattr_dict_id serial NOT NULL,
rattr_id integer,
rattr_dict_no smallint,
rattr_dict_name varchar(255),
rattr_dict_label varchar(255)
)
WITH (oids = false);
--
-- Structure for table ref_attr_outer :
--
CREATE TABLE pls.ref_attr_outer (
rattr_outer_id serial NOT NULL,
rattr_id integer,
rattr_outer_name varchar(255),
rattr_outer_label varchar(255),
rattr_outer_fields varchar(255),
rattr_outer_path varchar(255),
rattr_outer_key varchar(255),
rattr_outer_sort varchar(255)
)
WITH (oids = false);
--
-- Structure for table ref_action :
--
CREATE TABLE pls.ref_action (
raction_id integer DEFAULT nextval(('pls.ref_action_raction_id_seq'::text)::regclass) NOT NULL,
raction_name varchar(255),
raction_label varchar(255)
)
WITH (oids = false);
--
-- Definition for sequence ref_action_raction_id_seq :
--
CREATE SEQUENCE pls.ref_action_raction_id_seq
START WITH 1
INCREMENT BY 1
MAXVALUE 2147483647
NO MINVALUE
CACHE 1;
--
-- Structure for table ref_attr_actor :
--
CREATE TABLE pls.ref_attr_actor (
rattr_actor_id serial NOT NULL,
rattr_id integer,
ractor_id integer,
rstage_id integer
)
WITH (oids = false);
--
-- Definition for foreign data wrapper postgres_fdw :
--
CREATE FOREIGN DATA WRAPPER postgres_fdw
HANDLER public.postgres_fdw_handler
VALIDATOR public.postgres_fdw_validator;
--
-- Definition for foreign server test4_tsup_ecp :
--
CREATE SERVER test4_tsup_ecp
FOREIGN DATA WRAPPER postgres_fdw
OPTIONS (
host 'test4.tsup.ecp',
dbname 'tsup',
port '5432',
use_remote_estimate 'true',
updatable 'false',
truncatable 'false');
--
-- Definition for view entity_view_list :
--
CREATE VIEW pls.entity_view_list
AS
SELECT s.entity_id,
string_agg((s.rattr_label)::text, ';'::text) AS attr_list,
string_agg((s.entity_attr_value)::text, ';'::text) AS label_list
FROM (
SELECT ent.entity_id,
ea.entity_attr_value,
ra.rattr_label
FROM (((entity ent
LEFT JOIN ref_entity_type ret ON ((ret.rentity_type_id =
ent.rentity_type_id)))
LEFT JOIN entity_attr ea ON ((ea.entity_id = ent.entity_id)))
LEFT JOIN ref_attr ra ON ((ra.rattr_id = ea.rattr_id)))
WHERE (ra.rattr_view = true)
ORDER BY ent.entity_id, ra.rattr_no
) s
GROUP BY s.entity_id;
--
-- Definition for view request_view_list :
--
CREATE VIEW pls.request_view_list
AS
SELECT s.entity_id,
string_agg((s.rattr_label)::text, ';'::text) AS label_list,
string_agg((s.entity_attr_value)::text, ';'::text) AS attr_list
FROM (
SELECT ent.entity_id,
ea.entity_attr_value,
ra.rattr_label
FROM (((entity ent
LEFT JOIN ref_entity_type ret ON ((ret.rentity_type_id =
ent.rentity_type_id)))
LEFT JOIN entity_attr ea ON ((ea.entity_id = ent.entity_id)))
LEFT JOIN ref_attr ra ON ((ra.rattr_id = ea.rattr_id)))
WHERE (((ret.rentity_type_name)::text = 'request'::text) AND
(ra.rattr_view = true))
ORDER BY ent.entity_id, ra.rattr_no
) s
GROUP BY s.entity_id;
--
-- Definition for view candidate_view_list :
--
CREATE VIEW pls.candidate_view_list
AS
SELECT s.entity_id,
string_agg((s.rattr_label)::text, ';'::text) AS label_list,
string_agg((s.entity_attr_value)::text, ';'::text) AS attr_list
FROM (
SELECT ent.entity_id,
ea.entity_attr_value,
ra.rattr_label
FROM (((entity ent
LEFT JOIN ref_entity_type ret ON ((ret.rentity_type_id =
ent.rentity_type_id)))
LEFT JOIN entity_attr ea ON ((ea.entity_id = ent.entity_id)))
LEFT JOIN ref_attr ra ON ((ra.rattr_id = ea.rattr_id)))
WHERE (((ret.rentity_type_name)::text = 'candidate'::text) AND
(ra.rattr_view = true))
ORDER BY ent.entity_id, ra.rattr_no
) s
GROUP BY s.entity_id;
--
-- Structure for table entity_entity :
--
CREATE TABLE pls.entity_entity (
ent_ent_id serial NOT NULL,
entity_id integer,
entity_id_link integer,
ts_created timestamp without time zone,
ts_deleted timestamp without time zone
)
WITH (oids = false);
--
-- Definition for view entity_group :
--
CREATE VIEW pls.entity_group
AS
SELECT ea.entity_attr_value AS entity_id,
count(*) AS vacancy,
1 AS vacancy_move,
1 AS vacancy_out
FROM ((ref_entity_type ret
LEFT JOIN entity e ON ((e.rentity_type_id = ret.rentity_type_id)))
LEFT JOIN entity_attr ea ON (((ea.entity_id = e.entity_id) AND
(ea.rattr_id = 11))))
GROUP BY ea.entity_attr_value;
--
-- Structure for table ref_stage_action_actor :
--
CREATE TABLE pls.ref_stage_action_actor (
rstage_action_actor_id integer DEFAULT nextval('ref_stage_action_actor_ref_stage_action_actor_id_seq'::regclass) NOT NULL,
rstage_action_id integer,
ractor_id integer
)
WITH (oids = false);
--
-- Structure for table ref_stage_action_stage :
--
CREATE TABLE pls.ref_stage_action_stage (
rstage_action_stage_id integer DEFAULT nextval('ref_stage_actor_stage_rstage_action_stage_id_seq'::regclass) NOT NULL,
rstage_action_id integer,
rstage_id integer
)
WITH (oids = false);
--
-- Structure for table ref_route :
--
CREATE TABLE pls.ref_route (
rroute_id serial NOT NULL,
rroute_name varchar(255),
rroute_label varchar(255),
rstage_id_start integer
)
WITH (oids = false);
ALTER TABLE ONLY pls.ref_route ALTER COLUMN rroute_id SET STATISTICS 0;
--
-- Structure for table ref_attr_group_actor :
--
CREATE TABLE pls.ref_attr_group_actor (
rattr_group_actor_id serial NOT NULL,
rattr_group_id integer,
ractor_id integer,
can_edit boolean DEFAULT false,
can_read boolean DEFAULT true
)
WITH (oids = false);
--
-- Structure for table entity_attr_log :
--
CREATE TABLE pls.entity_attr_log (
entity_attr_log_id serial NOT NULL,
rattr_id integer,
entity_id integer,
entity_attr_value varchar,
ts_change timestamp without time zone,
user_change varchar(50)
)
WITH (oids = false);
--
-- Definition for index entity_pkey :
--
ALTER TABLE ONLY pls.entity
ADD CONSTRAINT entity_pkey
PRIMARY KEY (entity_id);
--
-- Definition for index entity_types_pkey :
--
ALTER TABLE ONLY pls.ref_entity_type
ADD CONSTRAINT entity_types_pkey
PRIMARY KEY (rentity_type_id);
--
-- Definition for index ref_attr_pkey :
--
ALTER TABLE ONLY pls.ref_attr
ADD CONSTRAINT ref_attr_pkey
PRIMARY KEY (rattr_id);
--
-- Definition for index entity_attr_pkey :
--
ALTER TABLE ONLY pls.entity_attr
ADD CONSTRAINT entity_attr_pkey
PRIMARY KEY (entity_attr_id);
--
-- Definition for index ref_attr_group_pkey :
--
ALTER TABLE ONLY pls.ref_attr_group
ADD CONSTRAINT ref_attr_group_pkey
PRIMARY KEY (rattr_group_id);
--
-- Definition for index entity_stage_pkey :
--
ALTER TABLE ONLY pls.entity_stage
ADD CONSTRAINT entity_stage_pkey
PRIMARY KEY (entity_stage_id);
--
-- Definition for index ref_stage_pkey :
--
ALTER TABLE ONLY pls.ref_stage
ADD CONSTRAINT ref_stage_pkey
PRIMARY KEY (rstage_id);
--
-- Definition for index ref_actor_pkey :
--
ALTER TABLE ONLY pls.ref_actor
ADD CONSTRAINT ref_actor_pkey
PRIMARY KEY (ractor_id);
--
-- Definition for index ref_stage_actor_pkey :
--
ALTER TABLE ONLY pls.ref_stage_action
ADD CONSTRAINT ref_stage_actor_pkey
PRIMARY KEY (rstage_action_id);
--
-- Definition for index ref_attr_dict_pkey :
--
ALTER TABLE ONLY pls.ref_attr_dict
ADD CONSTRAINT ref_attr_dict_pkey
PRIMARY KEY (rattr_dict_id);
--
-- Definition for index ref_attr_outer_pkey :
--
ALTER TABLE ONLY pls.ref_attr_outer
ADD CONSTRAINT ref_attr_outer_pkey
PRIMARY KEY (rattr_outer_id);
--
-- Definition for index ref_action_pkey :
--
ALTER TABLE ONLY pls.ref_action
ADD CONSTRAINT ref_action_pkey
PRIMARY KEY (raction_id);
--
-- Definition for index ref_attr_actor_pkey :
--
ALTER TABLE ONLY pls.ref_attr_actor
ADD CONSTRAINT ref_attr_actor_pkey
PRIMARY KEY (rattr_actor_id);
--
-- Definition for index entity_attr_fk :
--
ALTER TABLE ONLY pls.entity_attr
ADD CONSTRAINT entity_attr_fk
FOREIGN KEY (entity_id) REFERENCES entity(entity_id);
--
-- Definition for index entity_attr_fk1 :
--
ALTER TABLE ONLY pls.entity_attr
ADD CONSTRAINT entity_attr_fk1
FOREIGN KEY (rattr_id) REFERENCES ref_attr(rattr_id);
--
-- Definition for index entity_fk :
--
ALTER TABLE ONLY pls.entity
ADD CONSTRAINT entity_fk
FOREIGN KEY (rentity_type_id) REFERENCES ref_entity_type(rentity_type_id);
--
-- Definition for index ref_attr_fk :
--
ALTER TABLE ONLY pls.ref_attr
ADD CONSTRAINT ref_attr_fk
FOREIGN KEY (rattr_group_id) REFERENCES ref_attr_group(rattr_group_id);
--
-- Definition for index entity_entity_pkey :
--
ALTER TABLE ONLY pls.entity_entity
ADD CONSTRAINT entity_entity_pkey
PRIMARY KEY (ent_ent_id);
--
-- Definition for index entity_entity_idx :
--
ALTER TABLE ONLY pls.entity_entity
ADD CONSTRAINT entity_entity_idx
UNIQUE (entity_id, entity_id_link);
--
-- Definition for index entity_entity_fk :
--
ALTER TABLE ONLY pls.entity_entity
ADD CONSTRAINT entity_entity_fk
FOREIGN KEY (entity_id) REFERENCES entity(entity_id);
--
-- Definition for index entity_entity_fk1 :
--
ALTER TABLE ONLY pls.entity_entity
ADD CONSTRAINT entity_entity_fk1
FOREIGN KEY (entity_id_link) REFERENCES entity(entity_id);
--
-- Definition for index ref_stage_action_actor_pkey :
--
ALTER TABLE ONLY pls.ref_stage_action_actor
ADD CONSTRAINT ref_stage_action_actor_pkey
PRIMARY KEY (rstage_action_actor_id);
--
-- Definition for index ref_stage_actor_stage_pkey :
--
ALTER TABLE ONLY pls.ref_stage_action_stage
ADD CONSTRAINT ref_stage_actor_stage_pkey
PRIMARY KEY (rstage_action_stage_id);
--
-- Definition for index ref_route_pkey :
--
ALTER TABLE ONLY pls.ref_route
ADD CONSTRAINT ref_route_pkey
PRIMARY KEY (rroute_id);
--
-- Definition for index ref_route_fk :
--
ALTER TABLE ONLY pls.ref_route
ADD CONSTRAINT ref_route_fk
FOREIGN KEY (rstage_id_start) REFERENCES ref_stage(rstage_id) DEFERRABLE;
--
-- Definition for index ref_stage_fk :
--
ALTER TABLE ONLY pls.ref_stage
ADD CONSTRAINT ref_stage_fk
FOREIGN KEY (rroute_id) REFERENCES ref_route(rroute_id) DEFERRABLE;
--
-- Definition for index ref_attr_group_actor_pkey :
--
ALTER TABLE ONLY pls.ref_attr_group_actor
ADD CONSTRAINT ref_attr_group_actor_pkey
PRIMARY KEY (rattr_group_actor_id);
--
-- Definition for index ref_attr_group_actor_fk :
--
ALTER TABLE ONLY pls.ref_attr_group_actor
ADD CONSTRAINT ref_attr_group_actor_fk
FOREIGN KEY (ractor_id) REFERENCES ref_actor(ractor_id) DEFERRABLE;
--
-- Definition for index ref_attr_group_actor_fk1 :
--
ALTER TABLE ONLY pls.ref_attr_group_actor
ADD CONSTRAINT ref_attr_group_actor_fk1
FOREIGN KEY (rattr_group_id) REFERENCES ref_attr_group(rattr_group_id) DEFERRABLE;
--
-- Definition for index entity_attr_log_pkey :
--
ALTER TABLE ONLY pls.entity_attr_log
ADD CONSTRAINT entity_attr_log_pkey
PRIMARY KEY (entity_attr_log_id);
--
-- Definition for index entity_attr_log_fk :
--
ALTER TABLE ONLY pls.entity_attr_log
ADD CONSTRAINT entity_attr_log_fk
FOREIGN KEY (entity_id) REFERENCES entity(entity_id);
--
-- Definition for index entity_attr_log_fk1 :
--
ALTER TABLE ONLY pls.entity_attr_log
ADD CONSTRAINT entity_attr_log_fk1
FOREIGN KEY (rattr_id) REFERENCES ref_attr(rattr_id);
--
-- Comments
--
COMMENT ON COLUMN pls.entity.rentity_type_id IS 'ref_entity_type';
COMMENT ON COLUMN pls.entity.ts_deleted IS 'пометка, что сущность удалена в корзину';
COMMENT ON COLUMN pls.entity.chatroom_uuid IS 'ссылка на чат в мессенджере';
COMMENT ON COLUMN pls.ref_entity_type.rroute_id IS 'указатель маршрута, там будет с какого этапа начинается';
COMMENT ON COLUMN pls.ref_attr.rattr_label IS 'отображаемое имя';
COMMENT ON COLUMN pls.ref_attr.rattr_required IS 'обязательный';
COMMENT ON COLUMN pls.ref_attr.rattr_system IS 'служебный';
COMMENT ON COLUMN pls.ref_attr.rattr_group_id IS 'группа атрибутов';
COMMENT ON COLUMN pls.ref_attr.rattr_no IS 'порядковый номер';
COMMENT ON COLUMN pls.ref_attr.rattr_view IS 'это атрибут используется для отображения и идентификации сущности';
COMMENT ON COLUMN pls.ref_attr.rattr_multilple IS 'сущность может иметь несколько значений (копий) этого атрибута. Например, у укандидата несколько образований.';
COMMENT ON COLUMN pls.ref_attr_group.rattr_group_no IS 'порядковый номер для отображения';
COMMENT ON COLUMN pls.ref_attr_group.rentity_type_id IS 'указатель какой тип сущности обладает этой группа атрибутов';
COMMENT ON COLUMN pls.entity_stage.rstage_id IS 'из справочника этапов';
COMMENT ON COLUMN pls.entity_stage.entity_id IS 'какая сущность соединена с этим этапом';
COMMENT ON COLUMN pls.ref_stage.rentity_type_id IS 'какой тип сущности создавать при создании этого этапа';
COMMENT ON COLUMN pls.ref_stage.rstage_wait_others IS 'когда этап переходит на этот, если True, то всегда проверяет, есть ли потенциальные другие этапы, которые в этот переходят. Если такие есть - ждет. Если таких нет (или они закончились и перешли в этот), то включает этот этап.';
COMMENT ON COLUMN pls.ref_stage.rroute_id IS 'маршрут, который объединяет все этапы';
COMMENT ON COLUMN pls.ref_actor.ractor_auth_group_name IS 'соответствие auth.auth_groups.name';
COMMENT ON TABLE pls.ref_stage_action IS 'на этапе можно совершить разные действия разным акторам';
COMMENT ON COLUMN pls.ref_stage_action.rstage_id IS 'на каком этапе';
COMMENT ON COLUMN pls.ref_stage_action.raction_id IS 'какое действие может выполнить';
COMMENT ON COLUMN pls.ref_attr_dict.rattr_dict_no IS 'порядковый номер при отображении';
COMMENT ON COLUMN pls.ref_attr_dict.rattr_dict_name IS '!! После использования нельзя редактировать. Именно это поле записывается в значения атрибутов';
COMMENT ON COLUMN pls.ref_attr_dict.rattr_dict_label IS 'Отображаемый текст варианта выбора';
COMMENT ON COLUMN pls.ref_attr_outer.rattr_outer_fields IS 'какие поля показывать при выборе из справочника';
COMMENT ON COLUMN pls.ref_attr_outer.rattr_outer_path IS 'где находится этот справочник';
COMMENT ON COLUMN pls.ref_attr_outer.rattr_outer_key IS 'какое поле записывается в значение атрибута';
COMMENT ON COLUMN pls.ref_attr_outer.rattr_outer_sort IS 'по каким полям сортируется при отображении справочника';
COMMENT ON TABLE pls.ref_attr_actor IS 'Какой атрибут на каком этапе может редактирвоать';
COMMENT ON COLUMN pls.ref_attr_actor.rattr_id IS 'какой атрибут';
COMMENT ON COLUMN pls.ref_attr_actor.ractor_id IS 'какой актор';
COMMENT ON COLUMN pls.ref_attr_actor.rstage_id IS 'на каком конкретном этапе (NULL=на всех)';
COMMENT ON SERVER test4_tsup_ecp IS 'Используется для внешних таблиц в схеме egt';
COMMENT ON TABLE pls.entity_entity IS 'Связь двух сущностей';
COMMENT ON COLUMN pls.entity_entity.ent_ent_id IS 'уникальный ключ связки';
COMMENT ON COLUMN pls.entity_entity.entity_id IS 'сущность_родитель';
COMMENT ON COLUMN pls.entity_entity.entity_id_link IS 'сущность_дитя';
COMMENT ON TABLE pls.ref_stage_action_actor IS 'какое действие на каком этапе может выполнить какой актор';
COMMENT ON COLUMN pls.ref_stage_action_actor.rstage_action_id IS 'указатель на этап и действие';
COMMENT ON COLUMN pls.ref_stage_action_actor.ractor_id IS 'указатель на актора';
COMMENT ON COLUMN pls.ref_stage_action_stage.rstage_action_id IS 'после какого действия другого этапа';
COMMENT ON COLUMN pls.ref_stage_action_stage.rstage_id IS 'какие новые этапы начинаются (возможна развилка и распаллеливание)';
COMMENT ON TABLE pls.ref_route IS 'Маршрут, который объединяет несколько этапов';
COMMENT ON COLUMN pls.ref_route.rstage_id_start IS 'Этап, с которого начинается этот маршрут';
COMMENT ON COLUMN pls.ref_attr_group_actor.rattr_group_id IS 'в какой группе атрибутов';
COMMENT ON COLUMN pls.ref_attr_group_actor.ractor_id IS 'какой актор (роль)';
COMMENT ON COLUMN pls.ref_attr_group_actor.can_edit IS 'может редактировать все атрибуты в этой группе (по умолчанию нет)';
COMMENT ON COLUMN pls.ref_attr_group_actor.can_read IS 'может видеть атрибуты в этой группе (по умолчанию да)';

Powered by TurnKey Linux.