Обновил таблицы и создал новые для данных расписания.
This commit is contained in:
104
backend/src/main/resources/db/migration/V2__departmentCreate.sql
Normal file
104
backend/src/main/resources/db/migration/V2__departmentCreate.sql
Normal file
@@ -0,0 +1,104 @@
|
|||||||
|
-- ===============================
|
||||||
|
-- Создание таблицы кафедр
|
||||||
|
-- ===============================
|
||||||
|
|
||||||
|
CREATE TABLE IF NOT EXISTS departments (
|
||||||
|
id BIGSERIAL UNIQUE PRIMARY KEY NOT NULL,
|
||||||
|
name VARCHAR(255) NOT NULL,
|
||||||
|
code BIGINT UNIQUE NOT NULL
|
||||||
|
);
|
||||||
|
|
||||||
|
INSERT INTO departments (name, code) VALUES
|
||||||
|
('Кафедра ИБ', 1),
|
||||||
|
('Кафедра ВТ', 2),
|
||||||
|
('Кафедра КТ', 3);
|
||||||
|
|
||||||
|
-- ===============================
|
||||||
|
-- Создание таблицы специальностей
|
||||||
|
-- ===============================
|
||||||
|
|
||||||
|
CREATE TABLE IF NOT EXISTS specialties (
|
||||||
|
id BIGSERIAL PRIMARY KEY,
|
||||||
|
name VARCHAR(255) NOT NULL,
|
||||||
|
specialty_code VARCHAR(255) NOT NULL
|
||||||
|
);
|
||||||
|
|
||||||
|
INSERT INTO specialties (name, specialty_code) VALUES
|
||||||
|
('Информационная безопасность', '10.03.01'),
|
||||||
|
('Информатика и вычислительная техника', '09.03.01'),
|
||||||
|
('Программная инженерия', '09.03.04');
|
||||||
|
|
||||||
|
-- ===============================
|
||||||
|
-- Обновление таблицы дисциплин
|
||||||
|
-- ===============================
|
||||||
|
|
||||||
|
ALTER TABLE subjects
|
||||||
|
ADD COLUMN IF NOT EXISTS department_id BIGINT REFERENCES departments(id);
|
||||||
|
|
||||||
|
UPDATE subjects
|
||||||
|
SET department_id = 1
|
||||||
|
WHERE department_id IS NULL;
|
||||||
|
|
||||||
|
ALTER TABLE subjects
|
||||||
|
ALTER COLUMN department_id SET NOT NULL;
|
||||||
|
|
||||||
|
-- ===============================
|
||||||
|
-- Обновление таблицы групп
|
||||||
|
-- ===============================
|
||||||
|
|
||||||
|
ALTER TABLE student_groups
|
||||||
|
ADD COLUMN IF NOT EXISTS department_id BIGINT REFERENCES departments(id);
|
||||||
|
|
||||||
|
UPDATE student_groups
|
||||||
|
SET department_id = 1
|
||||||
|
WHERE department_id IS NULL;
|
||||||
|
|
||||||
|
ALTER TABLE student_groups
|
||||||
|
ALTER COLUMN department_id SET NOT NULL;
|
||||||
|
|
||||||
|
-- ===============================
|
||||||
|
-- Обновление таблицы пользователей
|
||||||
|
-- ===============================
|
||||||
|
|
||||||
|
ALTER TABLE users
|
||||||
|
ADD COLUMN IF NOT EXISTS full_name VARCHAR(255),
|
||||||
|
ADD COLUMN IF NOT EXISTS job_title VARCHAR(255),
|
||||||
|
ADD COLUMN IF NOT EXISTS department_id BIGINT REFERENCES departments(id);
|
||||||
|
|
||||||
|
UPDATE users
|
||||||
|
SET (full_name, job_title, department_id) =
|
||||||
|
('Иванов Админ Иванович', 'Доцент', 1)
|
||||||
|
WHERE id = 1;
|
||||||
|
|
||||||
|
UPDATE users
|
||||||
|
SET (full_name, job_title, department_id) =
|
||||||
|
('Петров Препод Петрович', 'Профессор', 2)
|
||||||
|
WHERE id = 2;
|
||||||
|
|
||||||
|
ALTER TABLE users
|
||||||
|
ALTER COLUMN full_name SET NOT NULL,
|
||||||
|
ALTER COLUMN job_title SET NOT NULL,
|
||||||
|
ALTER COLUMN department_id SET NOT NULL;
|
||||||
|
|
||||||
|
-- ===============================
|
||||||
|
-- Создание таблицы данных расписания
|
||||||
|
-- ===============================
|
||||||
|
|
||||||
|
CREATE TABLE IF NOT EXISTS schedule_data (
|
||||||
|
id BIGSERIAL PRIMARY KEY,
|
||||||
|
department_id BIGINT NOT NULL REFERENCES departments(id),
|
||||||
|
semester INT NOT NULL,
|
||||||
|
group_id BIGINT NOT NULL REFERENCES student_groups(id),
|
||||||
|
subjects_id BIGINT NOT NULL REFERENCES subjects(id),
|
||||||
|
lesson_type_id BIGINT NOT NULL REFERENCES lesson_types(id),
|
||||||
|
number_of_hours INT NOT NULL,
|
||||||
|
is_division BOOLEAN DEFAULT NOT NULL FALSE,
|
||||||
|
teacher_id BIGINT NOT NULL REFERENCES users(id),
|
||||||
|
semester_type VARCHAR(255) NOT NULL,
|
||||||
|
period VARCHAR(255) NOT NULL
|
||||||
|
);
|
||||||
|
|
||||||
|
INSERT INTO schedule_data (department_id, semester, group_id, subjects_id, lesson_type_id, number_of_hours, is_division, teacher_id, semester_type, period)
|
||||||
|
VALUES (1, 1, 1, 1, 3, 2, true, 1, 'Весенний', '2024/2025'),
|
||||||
|
(2, 4, 2, 3, 2, 1, false, 2, 'Осенний', '2025/2026'),
|
||||||
|
(3, 5, 1, 2, 1, 3, true, 1, 'Весенний', '2023/2024');
|
||||||
Reference in New Issue
Block a user