Встречается на 1% собеседований по Python
Как реализуется связь 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
интервью вопросы и ответы