Files
stu/model/class_model.py

73 lines
2.9 KiB
Python

from database import Base
from datetime import datetime,date
from sqlalchemy import *
from sqlalchemy import Column, Integer, String, Date, JSON
from sqlalchemy import Column, String, Date, Enum, DateTime, func
from sqlalchemy.orm import declarative_base
import enum
class Class_info(Base): # python里的表名字
__tablename__ = 'class_info' # 实际数据库的表名字
class_id = Column(String(20)
, primary_key=True
, autoincrement=False
, comment='班级编号,字符串类型手动维护')
class_code = Column(String(20) # 对应数据库的varchar类型
, nullable=False
,comment='班级业务编码,格式示例:2026-CS-01'# 不允许为null
)
class_name = Column(String(50)
, nullable=False
,comment='所在班级显示名称,如“2026级计算机科学与技术1班”,直接用于前端展示'
)
grade_year = Column(Date
,default=date.today
,comment='入学年级,如2026,用数值存储比字符串更便于按年级筛选、排序'
)
# teacher_id = Column(Integer
# , nullable=False
# ,comment='班主任外键,关联教师表,一个班级对应一名班主任'
# )
#
# student_id = Column(Integer
# , nullable=False
# ,comment='学号 用来连接学生表'
# )
enrollment_date = Column(Date
,default=date.today
,comment='班级正式入学日期'
)
status = Column(Integer
, nullable=False
,comment='班级正式入学日期'
)
tags = Column(JSON
, nullable=False
,comment='存储多维标签,例如:["重点班", "科技特长", "2026届"]'
)
is_deleted = Column(Boolean, default=0, comment="0=数据存在 1=数据逻辑删除")
create_time = Column(DATETIME
, default=datetime.now # 默认值是当前时间
)
update_time = Column(DATETIME
, default=datetime.now # 首次创建的时间跟更新时间一致
, onupdate=datetime.now
)
class StudentClassIntermediate(Base):
__tablename__ = "student_class_intermediate_table"
id = Column(String(20), primary_key=True)
class_id= Column(String(20))
student_id =Column(String(20))
is_deleted= Column(Integer)
create_time= Column(DateTime)
update_time= Column(DateTime)