2026-09-21 14:21:06 +08:00
|
|
|
from sqlalchemy import *
|
2026-09-21 19:55:51 +08:00
|
|
|
from sqlalchemy.dialects.mysql import TINYINT
|
2026-09-21 14:21:06 +08:00
|
|
|
from core.database import Base
|
|
|
|
|
from datetime import datetime,date
|
|
|
|
|
class Score(Base):
|
2026-09-21 19:55:51 +08:00
|
|
|
__tablename__ = "scores"
|
2026-09-21 14:21:06 +08:00
|
|
|
id = Column(Integer
|
|
|
|
|
, primary_key=True
|
|
|
|
|
,autoincrement=True
|
|
|
|
|
,comment="成绩表序号,自增主键"
|
|
|
|
|
)
|
|
|
|
|
student_id = Column(Integer
|
2026-09-21 19:55:51 +08:00
|
|
|
,ForeignKey("students.id")
|
2026-09-21 14:21:06 +08:00
|
|
|
,nullable=False
|
|
|
|
|
,comment="学生学号"
|
|
|
|
|
)
|
|
|
|
|
score = Column(DECIMAL(4,1)
|
|
|
|
|
,CheckConstraint("score between 0 and 100")
|
2026-09-21 19:55:51 +08:00
|
|
|
,nullable=False
|
2026-09-21 14:21:06 +08:00
|
|
|
)
|
|
|
|
|
exam_seq= Column(Integer
|
|
|
|
|
, nullable=False
|
|
|
|
|
,comment="考试序次")
|
|
|
|
|
__table_args__ = (
|
|
|
|
|
UniqueConstraint("student_id"
|
|
|
|
|
, "exam_seq"
|
2026-09-21 19:55:51 +08:00
|
|
|
, name="uk_scores_student_exam"),
|
|
|
|
|
)#学生id和考核序次联合唯一,即一个学生一次考试只能有一个分数
|
2026-09-21 14:21:06 +08:00
|
|
|
exam_date=Column(Date
|
|
|
|
|
,default=date.today
|
|
|
|
|
,comment="考试日期"
|
|
|
|
|
)
|
|
|
|
|
created_at=Column(DateTime
|
|
|
|
|
,default=datetime.now
|
2026-09-21 19:55:51 +08:00
|
|
|
,server_default=text("CURRENT_TIMESTAMP")
|
|
|
|
|
,nullable=False
|
2026-09-21 14:21:06 +08:00
|
|
|
,comment="创建时间"
|
|
|
|
|
)
|
|
|
|
|
updated_at=Column(DateTime
|
|
|
|
|
,default=datetime.now
|
|
|
|
|
,onupdate=datetime.now
|
2026-09-21 19:55:51 +08:00
|
|
|
,server_default=text("CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP")
|
|
|
|
|
,nullable=False
|
2026-09-21 14:21:06 +08:00
|
|
|
,comment="更新时间"
|
|
|
|
|
)
|
2026-09-21 19:55:51 +08:00
|
|
|
remark=Column(String(255)
|
2026-09-21 14:21:06 +08:00
|
|
|
,comment="备注说明"
|
|
|
|
|
)
|
2026-09-21 19:55:51 +08:00
|
|
|
is_deleted=Column(TINYINT
|
2026-09-21 14:21:06 +08:00
|
|
|
,default=0
|
2026-09-21 19:55:51 +08:00
|
|
|
,server_default=text("0")
|
|
|
|
|
,nullable=False
|
2026-09-21 14:21:06 +08:00
|
|
|
,comment="逻辑删除标记:未删除0,已删除1"
|
2026-09-21 19:55:51 +08:00
|
|
|
)
|