学生管理系统代码
This commit is contained in:
@@ -0,0 +1,33 @@
|
||||
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")
|
||||
Reference in New Issue
Block a user