@REDkiy

Как использовать отношения в sqlalchemy?

Осваиваю flask и sqlalchemy.
Взял пример из документации:
class Parent(Base):
    __tablename__ = 'parent'
    id = Column(Integer, primary_key=True)
    children = relationship("Child", backref="parent")

class Child(Base):
    __tablename__ = 'child'
    id = Column(Integer, primary_key=True)
    parent_id = Column(Integer, ForeignKey('parent.id'))


До конца не полнимаю смысл конструкции:
children = relationship("Child", backref="parent")
Какие у неё задачи? Как использовать в запросах?
Насколько она нужна если указан ForeignKey('parent.id')?

Мне сложно ориентироваться в документации sqlalchemy, буду рад ссылкам на примеры использования отношений.
  • Вопрос задан
  • 3412 просмотров
Пригласить эксперта
Ответы на вопрос 2
nextel
@nextel
ненавижу javascript
Это реализация отношения 1 ко многим, 1 родитель, туева хуча детей, по последней строечке можно всех детей которые на этого родителя ссылаются из базы выгребать
Ответ написан
@REDkiy Автор вопроса
В целом разобрался. Не знаю насколько я прав. Моё видение таково.
Отношения это больше объектный подход. При использовании отношения в таблицу добавляется "как-бы поле" в котором находится итерируемый объект (как-бы список) значений из второй таблицы соответствующих первичному ключу из первой таблицы.
join больше похож на SQL-оператор, он склеивает две таблицы по первичному ключу первой таблицы и его значению из второй. И работаем с получившейся таблицей. В таком случае можно обойтись полностью без отношений.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы