Обновил таблицы и создал новые для данных расписания.

This commit is contained in:
ProstoDenya01
2026-03-18 15:39:11 +03:00
parent a8144acb8b
commit c10198515c

View 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');