import enum from sqlalchemy import Column, Enum as SQLEnum, Integer, String from sqlalchemy.orm import relationship from database import Base # 性别枚举:只允许 男 / 女 class GenderEnum(str, enum.Enum): MALE = "男" FEMALE = "女" # 本文件只定义 advisor 表的结构,映射到 MySQL 数据库。 # 注意:这里只放「表长什么样」,不建表、不插数据、不创建会话。 class Advisor(Base): # 顾问表 表名 advisor __tablename__ = 'advisor' # 定义字段 id = Column(Integer, primary_key=True, autoincrement=True) advisor_name = Column(String(20), unique=True, nullable=False) flag = Column(Integer, nullable=False) # 性别:枚举类型(男/女),可空 gender = Column(SQLEnum(GenderEnum, values_callable=lambda e: [m.value for m in e]), nullable=True) # 电话:11位纯数字(校验在 Schema 层做),非必填 phone = Column(String(11), nullable=True) students = relationship("Student", back_populates="advisor") # 关联 Student(一对多:一个顾问对应多个学生) # 等 student_model.py 里写好 Student 模型、且两边 back_populates 对上后,再取消注释启用。 # student = relationship("Student", back_populates="advisor")