Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Задачи

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

AI info

Карта сайта

Документы

Медиа

Назад
Вопрос про Postgres: database design, scheduling system

Опиши проектирование БД для системы расписания (сущности: уроки, записи, связи, обработка замен занятий)

Проверяет навыки проектирования сложных структур данных.

Короткий ответ

Основные сущности:

  • Уроки: время, предмет, преподаватель, аудитория

  • Записи: студент → урок

  • Замены: оригинальный урок → измененные данные

Длинный ответ

Схема БД:

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

Обработка замен:

  1. Поиск всех записей на изменяемый урок

  2. Уведомление участников

  3. Обновление расписания

  • Аватар

    Golang Guru

    Maxim Lukyanov

    Guru – это эксперты YeaHub, которые помогают развивать комьюнити.

Уровень

  • Рейтинг:

    1

  • Сложность:

    8

Навыки

  • Postgres

    Postgres

Ключевые слова

#database design

#scheduling system

Подпишись на Python Developer в телеграм

  • Аватар

    Golang Guru

    Maxim Lukyanov

    Guru – это эксперты YeaHub, которые помогают развивать комьюнити.