61 lines
1.7 KiB
Python
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='逻辑删除'
|
|
)
|