mirror of
https://gitlab.com/MoonTestUse1/AdministrationItDepartmens.git
synced 2025-08-14 00:25:46 +02:00
79 lines
2.6 KiB
SQL
79 lines
2.6 KiB
SQL
-- Создаем основную базу данных
|
|
CREATE DATABASE app;
|
|
\c app;
|
|
|
|
-- Создаем таблицы для основной базы данных
|
|
CREATE TABLE employees (
|
|
id SERIAL PRIMARY KEY,
|
|
first_name VARCHAR NOT NULL,
|
|
last_name VARCHAR NOT NULL,
|
|
department VARCHAR NOT NULL,
|
|
office VARCHAR NOT NULL,
|
|
hashed_password VARCHAR NOT NULL,
|
|
is_active BOOLEAN DEFAULT TRUE,
|
|
is_admin BOOLEAN DEFAULT FALSE,
|
|
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
|
|
);
|
|
|
|
CREATE TABLE requests (
|
|
id SERIAL PRIMARY KEY,
|
|
request_type VARCHAR NOT NULL,
|
|
description TEXT NOT NULL,
|
|
priority VARCHAR NOT NULL,
|
|
status VARCHAR NOT NULL DEFAULT 'new',
|
|
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
employee_id INTEGER NOT NULL REFERENCES employees(id)
|
|
);
|
|
|
|
CREATE TABLE tokens (
|
|
id SERIAL PRIMARY KEY,
|
|
token VARCHAR UNIQUE NOT NULL,
|
|
employee_id INTEGER NOT NULL REFERENCES employees(id),
|
|
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
|
|
);
|
|
|
|
-- Создаем индексы
|
|
CREATE INDEX idx_employees_last_name ON employees(last_name);
|
|
CREATE INDEX idx_requests_employee_id ON requests(employee_id);
|
|
CREATE INDEX idx_requests_status ON requests(status);
|
|
CREATE INDEX idx_tokens_token ON tokens(token);
|
|
|
|
-- Создаем тестовую базу данных
|
|
CREATE DATABASE test_app;
|
|
\c test_app;
|
|
|
|
-- Создаем те же таблицы для тестовой базы данных
|
|
CREATE TABLE employees (
|
|
id SERIAL PRIMARY KEY,
|
|
first_name VARCHAR NOT NULL,
|
|
last_name VARCHAR NOT NULL,
|
|
department VARCHAR NOT NULL,
|
|
office VARCHAR NOT NULL,
|
|
hashed_password VARCHAR NOT NULL,
|
|
is_active BOOLEAN DEFAULT TRUE,
|
|
is_admin BOOLEAN DEFAULT FALSE,
|
|
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
|
|
);
|
|
|
|
CREATE TABLE requests (
|
|
id SERIAL PRIMARY KEY,
|
|
request_type VARCHAR NOT NULL,
|
|
description TEXT NOT NULL,
|
|
priority VARCHAR NOT NULL,
|
|
status VARCHAR NOT NULL DEFAULT 'new',
|
|
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
employee_id INTEGER NOT NULL REFERENCES employees(id)
|
|
);
|
|
|
|
CREATE TABLE tokens (
|
|
id SERIAL PRIMARY KEY,
|
|
token VARCHAR UNIQUE NOT NULL,
|
|
employee_id INTEGER NOT NULL REFERENCES employees(id),
|
|
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
|
|
);
|
|
|
|
-- Создаем индексы в тестовой базе
|
|
CREATE INDEX idx_employees_last_name ON employees(last_name);
|
|
CREATE INDEX idx_requests_employee_id ON requests(employee_id);
|
|
CREATE INDEX idx_requests_status ON requests(status);
|
|
CREATE INDEX idx_tokens_token ON tokens(token); |