DROP TABLE IF EXISTS "История движения" CASCADE;
DROP TABLE IF EXISTS "Задача";
DROP TABLE IF EXISTS "Документ";
DROP TABLE IF EXISTS "Статус";
DROP TABLE IF EXISTS "Тип документа";
DROP TABLE IF EXISTS "Сотрудник";
DROP TABLE IF EXISTS "Подразделение";
CREATE TABLE "Подразделение" (
"id подразделения" INT GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY,
"название" VARCHAR(100) NOT NULL,
"описание" VARCHAR(500)
);
CREATE TABLE "Сотрудник" (
"id сотрудника" INT GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY,
"ФИО" VARCHAR(150) NOT NULL,
"должность" VARCHAR(100) NOT NULL,
"id подразделения" INT NOT NULL,
CONSTRAINT fk_employee_department FOREIGN KEY ("id подразделения")
REFERENCES "Подразделение"("id подразделения")
);
CREATE TABLE "Тип документа" (
"id типа" INT GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY,
"наименование" VARCHAR(100) NOT NULL,
"описание" VARCHAR(500)
);
CREATE TABLE "Статус" (
"id статуса" INT GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY,
"наименование" VARCHAR(50) NOT NULL,
"описание" VARCHAR(300)
);
CREATE TABLE "Документ" (
"id документа" INT GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY,
"название" VARCHAR(200) NOT NULL,
"дата создания" DATE NOT NULL,
"содержание" VARCHAR(100),
"id_типа" INT NOT NULL,
"id статуса" INT NOT NULL,
"id автора" INT NOT NULL,
CONSTRAINT fk_doc_type FOREIGN KEY ("id_типа")
REFERENCES "Тип документа"("id типа"),
CONSTRAINT fk_doc_status FOREIGN KEY ("id статуса")
REFERENCES "Статус"("id статуса"),
CONSTRAINT fk_doc_author FOREIGN KEY ("id автора")
REFERENCES "Сотрудник"("id сотрудника")
);
CREATE TABLE "Задача" (
"id задачи" INT GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY,
"описание" VARCHAR(500),
"дата создания" DATE NOT NULL,
"срок исполнения" DATE NOT NULL,
"id документа" INT NOT NULL,
"id исполнителя" INT NOT NULL,
CONSTRAINT fk_task_doc FOREIGN KEY ("id документа")
REFERENCES "Документ"("id документа"),
CONSTRAINT fk_task_executor FOREIGN KEY ("id исполнителя")
REFERENCES "Сотрудник"("id сотрудника")
);
CREATE TABLE "История движения" (
"id записи" INT GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY,
"дата" DATE NOT NULL,
"действие" VARCHAR(250),
"id_документа" INT NOT NULL,
"id_сотрудника" INT NOT NULL,
CONSTRAINT fk_history_doc FOREIGN KEY ("id_документа")
REFERENCES "Документ"("id документа"),
CONSTRAINT fk_history_employee FOREIGN KEY ("id_сотрудника")
REFERENCES "Сотрудник"("id сотрудника")
);