請幫我在SQLAlchemy中建模。用戶可以創建一個問題。一個問題可以有多種選擇(例如,是,否,之後,可能,不知道,下一年,不適用)。我在問題和選擇之間創建了一個映射器。如何在SQLAlchemy中對響應建模?SqlAlchemy多對多數據建模
question_choices = Table('question_choices', Base.metadata,
Column('id', Integer, primary_key=True),
Column('question_id', Integer, ForeignKey('questions.id')),
Column('choice_id', Integer, ForeignKey('choices.id'))
)
class Choice(Base):
__tablename__ = 'choices'
id = Column(Integer, primary_key=True)
value = Column(String(30), nullable=False)
class Question(Base):
__tablename__ = 'questions'
id = Column(Integer, primary_key=True)
title = Column(String(100))
created = Column(DateTime)
choices = relationship('Choice', secondary=question_choices)
class questionResponse(Base):
"""A friend's response to a question"""
__tablename__ = 'question_responses'
id = Column(Integer, primary_key=True)
question_id = Column(Integer, ForeignKey('questions.id'))
choice_id = Column(Integer, ForeignKey('choices.id'))
user_id = Column(Integer, ForeignKey('users.id'))
created = Column(DateTime)
questionResponse模型未規範化。重複Question_id和listing_id。我在映射表中沒有關係。我希望能夠計算給定問題的答案。
非常感謝了詳細的答案。我瞭解了column_property。當我選擇第二個答案時,查詢變得非常困難,因爲我需要一個帶選項和列表的聯接。 – Bharad
例如,我可以通過question_choice_id查詢QuestionReponse,如何從這裏獲得選擇?我無法將關係添加到question_choices映射表中。 – Bharad
我在回答中添加了「answers」關係配置。 – van