Встречается на собеседованиях • сегодня
Как сделать 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
интервью вопросы и ответы