Files
wo_chovy/model/advisor_model.py
T

33 lines
1.3 KiB
Python
Raw Normal View History

2026-09-21 19:49:26 +08:00
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")