Проверяет навыки проектирования сложных структур данных.
Основные сущности:
Уроки: время, предмет, преподаватель, аудитория
Записи: студент → урок
Замены: оригинальный урок → измененные данные
Схема БД:
CREATE TABLE lessons (
id SERIAL PRIMARY KEY,
subject_id INT REFERENCES subjects(id),
teacher_id INT REFERENCES teachers(id),
room_id INT REFERENCES rooms(id),
start_time TIMESTAMP,
duration INTERVAL
);
CREATE TABLE bookings (
id SERIAL PRIMARY KEY,
lesson_id INT REFERENCES lessons(id),
student_id INT REFERENCES students(id),
status VARCHAR(20) -- booked/cancelled
);
CREATE TABLE lesson_changes (
id SERIAL PRIMARY KEY,
original_lesson_id INT REFERENCES lessons(id),
new_teacher_id INT NULL,
new_room_id INT NULL,
change_date DATE
);Обработка замен:
Поиск всех записей на изменяемый урок
Уведомление участников
Обновление расписания