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

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

-- 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.