Files
DoubaoTeam/models/class_teacher.py
T
2026-09-21 19:55:51 +08:00

61 lines
1.7 KiB
Python

from sqlalchemy import (Column, Integer, String, Text,
BigInteger,ForeignKey,VARCHAR,DateTime,UniqueConstraint,text
)
from sqlalchemy.dialects.mysql import TINYINT
from core.database import Base
from datetime import datetime
#班级老师关系表 class_teachers 中间表 ORM 模型完整定义
#字段包括id,class_id,teacher_id,role,created_at,updated_at,is_deleted
class ClassTeachers(Base):
__tablename__ = "class_teachers"
__table_args__ = (
UniqueConstraint("class_id", "teacher_id", "role", name="uk_class_teacher_role"),
)
id = Column(
BigInteger
,primary_key=True
,autoincrement=True
,comment='关系')
class_id = Column(
Integer
,ForeignKey('classes.id')
,nullable=False
,comment='关联 classes.id'
)
teacher_id = Column(
Integer
,ForeignKey('teachers.id')
,nullable=False
,comment='关联 teachers.id'
)
role = Column(
VARCHAR(30)
,nullable=False
,comment='老师在班级中的角色:head_teacher班主任 / lecturer授课老师 / assistant助教'
)
created_at = Column(
DateTime
,nullable=False
,default=datetime.now
,server_default=text("CURRENT_TIMESTAMP")
,comment='创建时间'
)
updated_at = Column(
DateTime
,nullable=False
,default=datetime.now
,onupdate=datetime.now
,server_default=text("CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP")
,comment='更新时间'
)
is_deleted = Column(
TINYINT
,nullable=False
,default=0
,server_default=text("0")
,comment='逻辑删除'
)