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