请帮我在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