【发布时间】:2014-09-30 10:55:03
【问题描述】:
我正在浏览 sqlalchemy Relationship Configuration 文档。一对多双向关系的示例如下所示:
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'))
我的理解是Parent 类中的backref="parent" 为Child 类提供了一个链接回原始Parent 对象的Child.parent 属性。
然后我不明白为什么Child 对象仍然明确需要parent_id 属性?这不是加倍信息吗?它是否可以更快地查询数据库,还是有其他一些好处?也许我误解了双向一对多关系是如何开始的?
【问题讨论】:
标签: python database database-design sqlalchemy