reports/docker/postgres/init/001_schema.sql

53 lines
2.3 KiB
MySQL
Raw Normal View History

2026-06-09 18:08:50 +03:00
CREATE TABLE IF NOT EXISTS teams (
id SERIAL PRIMARY KEY,
team_name character(16) NOT NULL,
team_board_id INT NOT NULL,
has_own_project BOOLEAN NOT NULL DEFAULT FALSE,
sprint_alias TEXT
2026-06-09 18:08:50 +03:00
);
CREATE TYPE role AS ENUM ('analytic', 'backend', 'designer', 'frontend', 'qa', 'project');
2026-06-09 18:08:50 +03:00
CREATE TABLE IF NOT EXISTS employees (
id SERIAL PRIMARY KEY,
employee_name TEXT,
employee_login TEXT UNIQUE,
employee_role role -- analytic|backend|designer|frontend|qa
);
CREATE TABLE IF NOT EXISTS team_members (
id SERIAL PRIMARY KEY,
team_id int not null REFERENCES teams(id) ON DELETE CASCADE,
employee_id int not null REFERENCES employees(id) ON DELETE CASCADE,
start_datetime TIMESTAMPTZ NOT NULL,
end_datetime TIMESTAMPTZ DEFAULT NULL
);
CREATE TABLE IF NOT EXISTS sprints (
id SERIAL PRIMARY KEY,
jira_sprint_id INT NOT NULL,
2026-06-09 18:08:50 +03:00
team_id int not null REFERENCES teams(id) ON DELETE CASCADE,
sprint_name TEXT NOT NULL,
sprint_activate_datetime TIMESTAMPTZ NOT NULL,
sprint_complete_datetime TIMESTAMPTZ NOT NULL,
sprint_completion_percentage real DEFAULT NULL
);
CREATE TABLE IF NOT EXISTS tasks (
id SERIAL PRIMARY KEY,
task_type TEXT NOT NULL, -- Тип таски: bug, backend...
task_key TEXT NOT NULL, -- Номер задачи
task_title TEXT NOT NULL, -- Заголовок задачи
employee_id int REFERENCES employees(id) ON DELETE SET NULL, -- Исполнитель
sprint_id int REFERENCES sprints(id) ON DELETE SET NULL, -- Спринт
estimate_seconds INT NOT NULL DEFAULT 0, -- Время оценки в секундах
total_time_seconds INT NOT NULL DEFAULT 0, -- Суммарное время потраченное на работу в секундах
take_in_work_datetime TIMESTAMPTZ, -- Дата-время взятия в работу
resolution_datetime TIMESTAMPTZ, -- Дата-время завершения задачи
lead_time_days INT, -- System Lead Time в рабочих днях
recast_percentage real, -- Переработка в %
efficiency_percentage real, -- КПД в %
review_count INT NOT NULL DEFAULT 0, -- Количество заходов на ревью
test_count INT NOT NULL DEFAULT 0 -- Количество заходов на тест
);