Back to questions
Junior — Middle
67
Какова роль параметра relationship в ORM-библиотеке SQLAlchemy и зачем он используется?
Companies where asked
Норси-Транс
Answer from AI
sobes.tech AI
Параметр relationship в SQLAlchemy используется для определения связи между двумя моделями (таблицами) в объектно-реляционном отображении (ORM). Он позволяет описать, как объекты одной модели связаны с объектами другой, например, один-к-одному, один-ко-многим или многие-ко-многим.
Зачем нужен relationship:
- Позволяет удобно получать связанные объекты через атрибуты Python, без написания SQL-запросов.
- Автоматически управляет загрузкой связанных данных (ленивая загрузка, жадная загрузка).
- Обеспечивает каскадные операции (например, удаление связанных объектов).
Пример:
from sqlalchemy import Column, Integer, String, ForeignKey
from sqlalchemy.orm import relationship
class User(Base):
__tablename__ = 'users'
id = Column(Integer, primary_key=True)
name = Column(String)
posts = relationship('Post', back_populates='author')
class Post(Base):
__tablename__ = 'posts'
id = Column(Integer, primary_key=True)
title = Column(String)
author_id = Column(Integer, ForeignKey('users.id'))
author = relationship('User', back_populates='posts')
Здесь posts у пользователя — список связанных постов, а author у поста — его автор.