title: Set foreign key to nullable=false?
body: <p>Do you set your foreign keys as <code>nullable=false</code> if always expect a foreign key on that column in the database? </p>
  
  <p>I'm using sqlalchemy and have set my models with required foreign keys. This sometimes causes me to run <code>session.commit()</code> more often, since I need the parent model to have an id and be fully created in order to build a child object in the ORM. What is considered best practice? My models are below:</p>
  
  <pre><code>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')
  </code></pre>