Birçok öz referansına bir çoğu ile aşağıdaki temel SQLAlchemy modeli vardır:SQLAlchemy özüne
class Organisation(Base):
__tablename__ = 'organisation'
name = Column(String(50))
url = Column(String(128))
associated = relationship(
'Organisation',
secondary="organisation_map",
primaryjoin="Organisation.id==organisation_map.c.organisation_id",
secondaryjoin="Organisation.id==organisation_map.c.assoc_organisation_id",
backref="account_organisation"
)
dernek tablo aşağıdaki gibidir:
class OrganisationMap(Base):
__tablename__ = 'organisation_map'
organisation_id = Column(Integer, ForeignKey('organisation.id'))
assoc_organisation_id = Column(Integer, ForeignKey('organisation.id'))
is_customer = Column(Boolean, default=False)
is_supplier = Column(Boolean, default=False)
İlişkilendirme tablosu, modelin kendisinden referans almak istediğim ek veri, is_customer
ve is_supplier
içerir, örneğin:
class Organisation(Base):
...
def get_suppliers(self):
pass
def get_customers(self):
pass
Şu anda
, ben 'müşterilerin kimliklerini ya, ilk dernek tablo, OrganisationMap
sorgulama olmadan böyle bir liste alma almanın yolu yoktur 'tedarikçileri' ve ardından kimlikleri listesiyle Organisation
tablo sorgulama.
Bu mümkün mü?
[Bu soru] bölümüne bakın (http://stackoverflow.com/questions/7417906/sqlalchemy-manytomany-secondary-table-with-additional-fields). Kendinden referanslı kısım sadece konfigürasyonda nominal değişiklikler gerektirmelidir. – univerio