Setzen Sie Ihre Fremdschlüssel als nullable = false, wenn Sie immer einen Fremdschlüssel für diese Spalte in der Datenbank erwarten?Fremdschlüssel auf Null setzen = false?
Ich benutze sqlalchemy und habe meine Modelle mit erforderlichen Fremdschlüsseln eingestellt. Dies führt manchmal dazu, dass ich session.commit() häufiger ausführen muss, da das Elternmodell eine ID haben muss und vollständig erstellt werden muss, um ein untergeordnetes Objekt im ORM zu erstellen. Was gilt als Best Practice? Meine Modelle sind unten:
class Location(Base):
__tablename__ = 'locations'
id = Column(Integer, primary_key=True)
city = Column(String(50), nullable=False, unique=True)
hotels = relationship('Hotel', back_populates='location')
class Hotel(Base):
__tablename__ = 'hotels'
id = Column(Integer, primary_key=True)
name = Column(String(100), nullable=False, unique=True)
phone_number = Column(String(20))
parking_fee = Column(String(10))
location_id = Column(Integer, ForeignKey('locations.id'), nullable=False)
location = relationship('Location', back_populates='hotels')
Danke. Ich habe meinen Code umstrukturiert und konnte die session.commit() entfernen, während ich den erforderlichen Fremdschlüssel beibehielt. – Casey