Was ist der Unterschied zwischen der Deklaration der Kaskade innerhalb eines Fremdschlüssels gegenüber Beziehungen?sqlalchemy: Was ist der Unterschied zwischen der Deklaration der Kaskade innerhalb des Fremdschlüssels vs Relation?
class Contact(Base):
__tablename__ = 'contacts'
id = Column(Integer, primary_key=True)
addresses = relation("Address", backref="contact")
class Address(Base):
__tablename__ = 'addresses'
id = Column(Integer, primary_key=True)
contact_id = Column(Integer, ForeignKey('contact.id', onupdate="CASCADE", ondelete="CASCADE")))
vs
class Contact(Base):
__tablename__ = 'contacts'
id = Column(Integer, primary_key=True)
addresses = relation("Address", backref="contact", cascade="all, delete-orphan")
class Address(Base):
__tablename__ = 'addresses'
id = Column(Integer, primary_key=True)
contact_id = Column(Integer, ForeignKey('contact.id'))
mit dem Fremdschlüssel Erklärung, wie es scheint, die Kaskade auf Datenbankebene erzwungen wird. Wie funktioniert die Beziehung? Vielen Dank!
Also sollte ich wirklich die beiden kombinieren, so dass die Beziehung der Datenbank Kaskade bekannt ist? – steve
Siehe die Dokumentation für passive_updates und passiv_deletes Parameter für die Beziehung Funktion: http://www.sqlalchemy.org/docs/reference/orm/mapping.html#sqlalchemy.orm.relationship –
genial. Danke für die Klarstellung. – steve