-- Включаем поддержку внешних ключей (важно для 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