sqlalchemy,具有关联对象,父类和子类的多对多

时间:2016-02-25 23:40:04

标签: python orm sqlalchemy

在sqlalchemy的文档中,使用关联对象

多对多

http://docs.sqlalchemy.org/en/latest/orm/basic_relationships.html#association-object

class Association(Base):
    __tablename__ = 'association'
    left_id = Column(Integer, ForeignKey('left.id'), primary_key=True)
    right_id = Column(Integer, ForeignKey('right.id'), primary_key=True)
    extra_data = Column(String(50))
    child = relationship("Child", back_populates="parents")
    parent = relationship("Parent", back_populates="children")

class Parent(Base):
    __tablename__ = 'left'
    id = Column(Integer, primary_key=True)
    children = relationship("Association", back_populates="parent")

class Child(Base):
    __tablename__ = 'right'
    id = Column(Integer, primary_key=True)
    parents = relationship("Association", back_populates="child")

表格的名称为parentchild

在这个orm场景中,sqlalchemy是否仍将rdbms意义上的这些表视为子级的父级?或者,文档的这一部分只是从页面上方隐藏了类ParentChild的名称?代码似乎创造了一种对称的关系。

0 个答案:

没有答案