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