erDiagram
DEPARTMENT ||--o{ TEACHER : "включает"
DEPARTMENT ||--o{ STUDENT : "выпускает"
DEPARTMENT ||--o{ COURSE : "курирует"
TEACHER ||--o{ CLASS_SECTION : "ведет"
COURSE ||--o{ CLASS_SECTION : "реализуется в"
STUDENT ||--o{ ENROLLMENT : "записан"
CLASS_SECTION ||--o{ ENROLLMENT : "содержит"
DEPARTMENT {
int id PK "ID кафедры"
string name "Название"
string building "Корпус"
}
TEACHER {
int id PK "ID преподавателя"
int department_id FK "ID кафедры"
string full_name "ФИО"
string email "Email"
string academic_title "Ученое звание"
}
STUDENT {
int id PK "ID студента"
int department_id FK "ID кафедры"
string full_name "ФИО"
date birth_date "Дата рождения"
int enrollment_year "Год поступления"
}
COURSE {
int id PK "ID дисциплины"
int department_id FK "ID кафедры"
string title "Название предмета"
int credits "Часы / Кредиты"
}
CLASS_SECTION {
int id PK "ID потока/занятия"
int course_id FK "ID дисциплины"
int teacher_id FK "ID преподавателя"
string semester "Семестр"
string room "Аудитория"
}
ENROLLMENT {
int id PK "ID записи"
int student_id FK "ID студента"
int class_section_id FK "ID потока"
int grade "Итоговая оценка"
date enrollment_date "Дата записи"
}