Встречается на 1% собеседований по Python
Как сделать Many-to-Many связь в SQLAlchemy 2.0
Для создания связи Many-to-Many в SQLAlchemy 2.0 используется промежуточная таблица и relationship с параметром secondary. Вот пример:
python
from sqlalchemy import Table, Column, Integer, ForeignKey
from sqlalchemy.orm import relationship, Mapped, mapped_column
from sqlalchemy.ext.declarative import 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 Parent(Base):
tablename = 'left'
id: Mapped[int] = mapped_column(primary_key=True)
children: Mapped[list['Child']] = relationship(secondary=association_table)
class Child(Base):
tablename = 'right'
id: Mapped[int] = mapped_column(primary_key=True)
text
Ключевые моменты:
1. Создаем промежуточную таблицу с внешними ключами к обеим таблицам
2. В моделях указываем relationship с параметром `secondary`, ссылаясь на промежуточную таблицу
3. В SQLAlchemy 2.0 рекомендуется использовать аннотации типов (Mapped)
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
Похожие вопросы
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы