Схема базы данных

Таблицы приложения «Школа» (префикс school_ в SQLite и PostgreSQL). Диаграмма строится в браузере; ниже — перечень полей из моделей Django.

ER-диаграмма

erDiagram
    PREPODAVATEL ||--o{ ZANYATIE : "ведёт"
    KURS ||--o{ ZANYATIE : "входит в"
    KABINET ||--o{ ZANYATIE : "проводится в"
    ZANYATIE ||--o{ POSESHCHENIE : "имеет"
    UCENIK ||--o{ POSESHCHENIE : "отмечен"
    UCENIK ||--o{ PLATEZH : "оплачивает"

    PREPODAVATEL {
        int id "Идентификатор"
        string fio "ФИО"
        string instrument "Инструмент"
        string phone "Телефон"
        string email "Электронная почта"
    }
    UCENIK {
        int id "Идентификатор"
        string fio "ФИО"
        date birth_date "Дата рождения"
        string phone "Телефон"
        string parent_contact "Контакт родителей"
    }
    KURS {
        int id "Идентификатор"
        string name "Название"
        string description "Описание"
        int duration "Длительность (мин)"
    }
    KABINET {
        int id "Идентификатор"
        string name "Название"
        int capacity "Вместимость"
    }
    ZANYATIE {
        int id "Идентификатор"
        date lesson_date "Дата занятия"
        time start_time "Время начала"
        int duration "Длительность (мин)"
        int course_id "Курс"
        int teacher_id "Преподаватель"
        int room_id "Кабинет"
    }
    POSESHCHENIE {
        int id "Идентификатор"
        string status "Статус"
        int lesson_id "Занятие"
        int student_id "Ученик"
    }
    PLATEZH {
        int id "Идентификатор"
        decimal amount "Сумма"
        date payment_date "Дата оплаты"
        string period "Период"
        int student_id "Ученик"
    }

Таблицы и поля

Курс — school_course

ПолеТипПримечания
ID
id ПК
Большое целое (авто)
Название
name
Строка
Описание
description
Текст
Длительность (мин)
duration_minutes
Целое

Занятие — school_lesson

ПолеТипПримечания
ID
id ПК
Большое целое (авто)
Курс
course_id
Внешний ключ ВК → курс (school_course)
Преподаватель
teacher_id
Внешний ключ ВК → преподаватель (school_teacher)
Кабинет
room_id
Внешний ключ Необязательное ВК → кабинет (school_room)
Дата занятия
lesson_date
Дата
Время начала
start_time
Время
Длительность (мин)
duration_minutes
Целое

Посещение — school_lessonattendance

ПолеТипПримечания
ID
id ПК
Большое целое (авто)
Занятие
lesson_id
Внешний ключ ВК → занятие (school_lesson)
Ученик
student_id
Внешний ключ ВК → ученик (school_student)
Статус
status
Строка

Платёж — school_payment

ПолеТипПримечания
ID
id ПК
Большое целое (авто)
Ученик
student_id
Внешний ключ ВК → ученик (school_student)
Сумма
amount
Десятичное число
Дата оплаты
payment_date
Дата
Период
period
Строка

Кабинет — school_room

ПолеТипПримечания
ID
id ПК
Большое целое (авто)
Название
name
Строка
Вместимость
capacity
Целое

Ученик — school_student

ПолеТипПримечания
ID
id ПК
Большое целое (авто)
ФИО
full_name
Строка
Дата рождения
birth_date
Дата
Телефон
phone
Строка
Контакт родителей
parent_contact
Строка

Преподаватель — school_teacher

ПолеТипПримечания
ID
id ПК
Большое целое (авто)
ФИО
full_name
Строка
Инструмент
instrument
Строка
Телефон
phone
Строка
Электронная почта
email
Строка