データベースのその列に常に外部キーがあると想定すると、外部キーをnullable = falseに設定していますか?外部キーをnullable = falseに設定しますか?
私はsqlalchemyを使用しており、必要な外部キーを使用してモデルを設定しています。これは、親モデルにIDを持たせ、子オブジェクトをORMに構築するために完全に作成する必要があるため、session.commit()を頻繁に実行することがあります。ベストプラクティスとは何ですか?私のモデルは以下の通りです:
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')
ありがとうございました。私は自分のコードをリファクタリングし、必要な外部キーを維持しながらsession.commit()を削除することができました。 – Casey