Что такое связь многие ко многим в SQL? Как реализуется?

Связь многие ко многим (many-to-many) в SQL означает, что одной записи из первой таблицы может соответствовать несколько записей из второй таблицы, и наоборот.

Короткий ответ

Что ответить на собеседовании

Связь многие ко многим (many-to-many) в SQL означает, что одной записи из первой таблицы может соответствовать несколько записей из второй таблицы, и наоборот. Например, студенты и курсы: один студент может посещать несколько курсов, и один курс может иметь много студентов.

Подробный разбор

Ответ с пояснениями

Связь многие ко многим (many-to-many) в SQL означает, что одной записи из первой таблицы может соответствовать несколько записей из второй таблицы, и наоборот. Например, студенты и курсы: один студент может посещать несколько курсов, и один курс может иметь много студентов.

Реализуется такая связь через промежуточную таблицу (таблицу связей), которая содержит внешние ключи на обе связанные таблицы. Эта таблица обычно содержит пары идентификаторов, указывающих на связанные записи.

Пример:

-- Таблица студентов
CREATE TABLE Students (
    StudentID INT PRIMARY KEY,
    Name VARCHAR(100)
);

-- Таблица курсов
CREATE TABLE Courses (
    CourseID INT PRIMARY KEY,
    Title VARCHAR(100)
);

-- Промежуточная таблица для связи многие ко многим
CREATE TABLE StudentCourses (
    StudentID INT,
    CourseID INT,
    PRIMARY KEY (StudentID, CourseID),
    FOREIGN KEY (StudentID) REFERENCES Students(StudentID),
    FOREIGN KEY (CourseID) REFERENCES Courses(CourseID)
);

Таким образом, чтобы узнать, какие курсы посещает студент, или какие студенты записаны на курс, нужно делать JOIN через таблицу StudentCourses.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее