73 lines
2.9 KiB
Python
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) |