Загрузка данных


-- Включаем поддержку внешних ключей (важно для SQLite)
PRAGMA foreign_keys = ON;

-- 1. Таблица студентов
CREATE TABLE students (
    id INTEGER PRIMARY KEY AUTOINCREMENT,
    first_name TEXT NOT NULL,
    last_name TEXT NOT NULL
);

-- 2. Таблица групп
CREATE TABLE groups (
    id INTEGER PRIMARY KEY AUTOINCREMENT,
    group_name TEXT NOT NULL
);

-- 3. Связующая таблица (реализация отношения многие-ко-многим)
CREATE TABLE student_groups (
    student_id INTEGER,
    group_id INTEGER,
    PRIMARY KEY (student_id, group_id),
    FOREIGN KEY (student_id) REFERENCES students(id) ON DELETE CASCADE,
    FOREIGN KEY (group_id) REFERENCES groups(id) ON DELETE CASCADE
);

-- Добавляем тестовые данные для проверки
INSERT INTO students (first_name, last_name) VALUES 
('Иван', 'Иванов'), 
('Мария', 'Петрова'), 
('Петр', 'Сидоров');

INSERT INTO groups (group_name) VALUES 
('ПИ-21-1'), 
('ПИ-21-2');

-- Распределяем студентов по группам (один студент может быть в нескольких группах, и наоборот)
INSERT INTO student_groups (student_id, group_id) VALUES 
(1, 1), -- Иван в ПИ-21-1
(1, 2), -- Иван также в ПИ-21-2
(2, 1), -- Мария в ПИ-21-1
(3, 2); -- Петр в ПИ-21-2