Junior — Middle
101
SQLAlchemy 2.0'de çok-çok ilişki nasıl uygulanır?
Sorulan şirketler
СБЕР Бизнес
AI'dan gelen yanıt
sobes.tech yapay zeka
В SQLAlchemy 2.0 связь многие-ко-многим реализуется через вспомогательную таблицу (association table), которая содержит внешние ключи на обе связанные таблицы. Затем в моделях используется параметр relationship с указанием этой таблицы.
Пример:
from sqlalchemy import Table, Column, Integer, ForeignKey
from sqlalchemy.orm import relationship, declarative_base
Base = declarative_base()
association_table = Table(
'association', Base.metadata,
Column('left_id', ForeignKey('left.id'), primary_key=True),
Column('right_id', ForeignKey('right.id'), primary_key=True)
)
class Left(Base):
__tablename__ = 'left'
id = Column(Integer, primary_key=True)
rights = relationship("Right", secondary=association_table, back_populates="lefts")
class Right(Base):
__tablename__ = 'right'
id = Column(Integer, primary_key=True)
lefts = relationship("Left", secondary=association_table, back_populates="rights")
Такой подход позволяет удобно работать с множественными связями между объектами.