question_variant.py 1.1 KB

123456789101112131415161718192021222324252627282930
  1. # -*- coding: utf-8 -*-
  2. """错题变式题映射:base_question -> variant_question(同知识点)"""
  3. from datetime import datetime
  4. from sqlalchemy import Column, DateTime, ForeignKey, Integer, UniqueConstraint
  5. from backend.database import Base
  6. class QuestionVariant(Base):
  7. __tablename__ = "question_variants"
  8. __table_args__ = (
  9. UniqueConstraint("base_question_id", "variant_question_id", name="uk_base_variant"),
  10. )
  11. id = Column(Integer, primary_key=True, index=True)
  12. # base_question_id:用户曾错过的“原题”
  13. base_question_id = Column(Integer, ForeignKey("questions.id"), nullable=False, index=True)
  14. # variant_question_id:同知识点变式题(可重复训练)
  15. variant_question_id = Column(Integer, ForeignKey("questions.id"), nullable=False, index=True)
  16. # 同知识点标注(可为空;若为空将退回 QuestionVariant 的 base/variant 映射)
  17. knowledge_point_id = Column(Integer, ForeignKey("knowledge_points.id"), nullable=True, index=True)
  18. weight = Column(Integer, default=1)
  19. created_at = Column(DateTime, default=datetime.utcnow)