Загрузка данных
```sql
-- ============================================================
-- DATABASE: it_cube — автоматизация приёма и распределения заявок
-- СУБД: MySQL 8.0+
-- Таблиц: 7
-- ============================================================
DROP DATABASE IF EXISTS it_cube;
CREATE DATABASE it_cube
CHARACTER SET utf8mb4
COLLATE utf8mb4_unicode_ci;
USE it_cube;
-- ============================================================
-- 1. TABLE: parents — родители
-- ============================================================
CREATE TABLE parents (
parent_id INT AUTO_INCREMENT PRIMARY KEY, -- код родителя
last_name VARCHAR(50) NOT NULL, -- фамилия
first_name VARCHAR(50) NOT NULL, -- имя
middle_name VARCHAR(50) NULL, -- отчество
phone VARCHAR(20) NOT NULL UNIQUE, -- телефон
email VARCHAR(100) NOT NULL UNIQUE, -- электронная почта
snils CHAR(11) NULL UNIQUE, -- СНИЛС
registered_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP -- дата регистрации
) ENGINE=InnoDB;
-- ============================================================
-- 2. TABLE: children — дети
-- ============================================================
CREATE TABLE children (
child_id INT AUTO_INCREMENT PRIMARY KEY, -- код ребёнка
last_name VARCHAR(50) NOT NULL, -- фамилия
first_name VARCHAR(50) NOT NULL, -- имя
middle_name VARCHAR(50) NULL, -- отчество
birth_date DATE NOT NULL, -- дата рождения
snils CHAR(11) NULL UNIQUE, -- СНИЛС
parent_id INT NOT NULL, -- код родителя
FOREIGN KEY (parent_id)
REFERENCES parents(parent_id)
ON DELETE CASCADE
ON UPDATE CASCADE
) ENGINE=InnoDB;
-- ============================================================
-- 3. TABLE: teachers — преподаватели
-- ============================================================
CREATE TABLE teachers (
teacher_id INT AUTO_INCREMENT PRIMARY KEY, -- код преподавателя
last_name VARCHAR(50) NOT NULL, -- фамилия
first_name VARCHAR(50) NOT NULL, -- имя
middle_name VARCHAR(50) NULL, -- отчество
specialization VARCHAR(100) NOT NULL, -- специализация
phone VARCHAR(20) NOT NULL UNIQUE, -- телефон
email VARCHAR(100) NOT NULL UNIQUE -- электронная почта
) ENGINE=InnoDB;
-- ============================================================
-- 4. TABLE: programs — программы
-- ============================================================
CREATE TABLE programs (
program_id INT AUTO_INCREMENT PRIMARY KEY, -- код программы
name VARCHAR(100) NOT NULL UNIQUE, -- название
description TEXT NULL, -- описание
min_age TINYINT UNSIGNED NOT NULL, -- минимальный возраст
max_age TINYINT UNSIGNED NOT NULL, -- максимальный возраст
duration_hours SMALLINT UNSIGNED NOT NULL -- длительность (часов)
) ENGINE=InnoDB;
-- ============================================================
-- 5. TABLE: groups — кружки
-- ============================================================
CREATE TABLE groups (
group_id INT AUTO_INCREMENT PRIMARY KEY, -- код кружка
program_id INT NOT NULL, -- код программы
teacher_id INT NOT NULL, -- код преподавателя
room VARCHAR(20) NULL, -- аудитория
academic_year VARCHAR(9) NOT NULL, -- учебный год
max_seats SMALLINT UNSIGNED NOT NULL, -- максимум мест
free_seats SMALLINT UNSIGNED NOT NULL, -- свободных мест
FOREIGN KEY (program_id)
REFERENCES programs(program_id)
ON DELETE RESTRICT
ON UPDATE CASCADE,
FOREIGN KEY (teacher_id)
REFERENCES teachers(teacher_id)
ON DELETE RESTRICT
ON UPDATE CASCADE
) ENGINE=InnoDB;
-- ============================================================
-- 6. TABLE: schedule — расписание
-- ============================================================
CREATE TABLE schedule (
lesson_id INT AUTO_INCREMENT PRIMARY KEY, -- код занятия
group_id INT NOT NULL, -- код кружка
weekday ENUM('Пн','Вт','Ср','Чт','Пт','Сб','Вс') NOT NULL, -- день недели
start_time TIME NOT NULL, -- время начала
end_time TIME NOT NULL, -- время окончания
FOREIGN KEY (group_id)
REFERENCES groups(group_id)
ON DELETE CASCADE
ON UPDATE CASCADE
) ENGINE=InnoDB;
-- ============================================================
-- 7. TABLE: applications — заявки
-- ============================================================
CREATE TABLE applications (
application_id INT AUTO_INCREMENT PRIMARY KEY, -- код заявки
child_id INT NOT NULL, -- код ребёнка
group_id INT NULL, -- код кружка (NULL — не распределён)
status VARCHAR(20) NOT NULL DEFAULT 'новая', -- статус заявки
submitted_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, -- дата подачи
comment TEXT NULL, -- комментарий
FOREIGN KEY (child_id)
REFERENCES children(child_id)
ON DELETE CASCADE
ON UPDATE CASCADE,
FOREIGN KEY (group_id)
REFERENCES groups(group_id)
ON DELETE SET NULL
ON UPDATE CASCADE
) ENGINE=InnoDB;
-- ============================================================
-- END OF SCRIPT
-- ============================================================
```