Files

37 lines
1.7 KiB
Python
Raw Permalink Normal View History

#导入需要用的工具
#Column用来定义数据库表字段;Integer整数;String字符串;DateTime时间类型
from sqlalchemy import Column, Integer, String, DateTime
#relationship用于建立多表之间的关联关系
from sqlalchemy.orm import relationship
#Base是数据库模型的基类,所有数据表模型都要继承它
from database import Base
#导入班级和老师的多对多中间表
from model.teacher_model import teacher_class
#班级表模型 继承Base,用来映射MySQL里面的classes表 Column是用来定义数据库表里面的字段
class Classes(Base):
__tablename__ = "classes"
# 班级cid,自增主键,唯一标识每一条班级数据
cid = Column(Integer, primary_key=True, autoincrement=True)
# 班级名称,字符串最长10个字符,不允许为空
class_name = Column(String(10), nullable=False)
# 开班时间,时间类型,不允许为空
start_time = Column(DateTime,nullable=False)
# 班主任名称,字符串最长10个字符,不允许为空
head_teacher = Column(String(10),nullable=False)
# 任课老师,字符串最长15个字符,不允许为空
teacher = Column(String(15),nullable=False)
# 逻辑删除标记:默认1代表正常可用;执行逻辑删除后改为0代表已删除
is_del = Column(Integer, default=1)
#老师表和班级表多对多 secondary 专门用于【多对多】关系,用来指定中间表
teachers = relationship("Teacher", secondary=teacher_class, back_populates="classes")
#班级表和学生表一对多
students = relationship("Student", back_populates="classes")
#relationship SQLAIchemy的关联函数 student代表关联的另一个模型类名(学生模型Student) back_populates=反向关联