Что такое 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`
- Позволяет эффективно моделировать сложные отношения (например, студенты и курсы)
офферы быстрее!
Следующий вопрос
Это единственный вопрос по вашему фильтру