我在嘗試思考SQL架構時遇到以下問題,但SQL SQL Alchemy出現問題。Python SQLalchemy表中的多個字段
我的模式基於2個班,Flight和Trip。
旅程包含2個字段:flights_to和flights_from。 任何字段基本上是一個航班列表,它可以由一個航班或多個航班(Connection航班)組成。
class Trip(Base):
__tablename__ = "Trip"
__table_args__ = {'sqlite_autoincrement': True}
id = Column(Integer, primary_key = True)
flights_to = relationship("Flight", backref="Trip")
flights_from = relationship("Flight", backref="Trip")
class Flight(Base):
__tablename__ = "Flight"
__table_args__ = {'sqlite_autoincrement': True}
id = Column(Integer, primary_key = True)
arrival_airport = Column(String(20))
departure_airport = Column(String(20))
flight_number = Column(Integer)
trip_id = Column(Integer, ForeignKey('Trip.id'))
當我創建在同類型的2場的問題發生:
sqlalchemy.exc.ArgumentError: Error creating backref 'Trip' on relationship 'Trip.flights_from': property of that name exists on mapper 'Mapper|Flight|Flight'
我曾經想過用2繼承類型FlightTo和FlightFrom類和在兩個不同的表保存它們,但什麼如果我想使用FlightFrom作爲FlightTo?這個航班是否會在2張表格中複製?
我將不勝感激您的幫助。
我不認爲你理解這個問題,backref甚至沒有必要在這裏,因爲引用是從Trip到僅飛行 – toothpick
那麼我試過了解釋是爲什麼你有錯誤。更明確地說,由於錯誤提到它不能在航班上創建名稱爲「Trip」的反向參考,因爲反向參考''Trip'已被flight_to採用。在我的回答中,我剛剛試圖展示一個示例的第二部分。如果您重命名flights_from反向引用,則錯誤將消失。 – formatkaka