Что такое Many-to-Many
Python
Middle
Аэрофлот
Что такое Many-to-Many
Ответы
В реляционных базах данных Many-to-Many (многие-ко-многим) — это тип связи, когда одна запись в таблице А может быть связана с несколькими записями в таблице Б, и наоборот. Для реализации такой связи используется промежуточная таблица (junction table), которая содержит внешние ключи на обе таблицы.
Пример с SQLAlchemy:
```
from sqlalchemy import Table, Column, Integer, ForeignKey
# Промежуточная таблица
association_table = Table(
'association', Base.metadata,
Column('student_id', Integer, ForeignKey('students.id')),
Column('course_id', Integer, ForeignKey('courses.id'))
)
class Student(Base):
__tablename__ = 'students'
id = Column(Integer, primary_key=True)
courses = relationship("Course", secondary=association_table, back_populates="students")
class Course(Base):
__tablename__ = 'courses'
id = Column(Integer, primary_key=True)
students = relationship("Student", secondary=association_table, back_populates="courses")
```
Ключевые моменты:
- Требуется третья таблица для хранения связей
- В Django используется `ManyToManyField`
- Позволяет эффективно моделировать сложные отношения (например, студенты и курсы)