Встречается на собеседованиях • сегодня
Как реализуется связь Many-to-Many в БД
Связь Many-to-Many реализуется через промежуточную таблицу (junction table), которая содержит внешние ключи, ссылающиеся на обе связанные таблицы.
Пример для SQL:
sql
CREATE TABLE Students (
id SERIAL PRIMARY KEY,
name VARCHAR(100)
);
CREATE TABLE Courses (
id SERIAL PRIMARY KEY,
title VARCHAR(100)
);
CREATE TABLE StudentCourses (
student_id INT REFERENCES Students(id),
course_id INT REFERENCES Courses(id),
PRIMARY KEY (student_id, course_id)
);В ORM (например, SQLAlchemy):
python
class Student(Base):
__tablename__ = 'students'
id = Column(Integer, primary_key=True)
name = Column(String)
courses = relationship("Course", secondary="student_courses")
class Course(Base):
__tablename__ = 'courses'
id = Column(Integer, primary_key=True)
title = Column(String)
students = relationship("Student", secondary="student_courses")
student_courses = Table('student_courses', Base.metadata,
Column('student_id', Integer, ForeignKey('students.id')),
Column('course_id', Integer, ForeignKey('courses.id'))Ключевые моменты:
- Промежуточная таблица содержит минимум 2 внешних ключа
- Часто используют составной первичный ключ из этих двух полей
- В ORM связь описывается через параметр
secondary

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы