Что такое Many-to-Many

«Что такое Many-to-Many» — вопрос из категории Базы данных, который задают на 33% собеседований Аналитик Данных. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

В реляционных базах данных связь Many-to-Many означает, что несколько записей из одной таблицы могут быть связаны с несколькими записями другой таблицы и наоборот. Для реализации такой связи используется промежуточная таблица (junction table), которая содержит внешние ключи из обеих таблиц.

Пример: таблица Students и таблица Courses. Один студент может посещать несколько курсов, а один курс может иметь несколько студентов. Промежуточная таблица StudentCourses будет содержать пары student_id и course_id.

CREATE TABLE StudentCourses (
    student_id INT REFERENCES Students(id),
    course_id INT REFERENCES Courses(id),
    PRIMARY KEY (student_id, course_id)
);

В аналитике такие связи часто требуют джойнов через промежуточную таблицу и могут усложнять агрегацию данных.