36 lines
1.8 KiB
Python
36 lines
1.8 KiB
Python
from sqlalchemy import ForeignKey, Column, Integer, String, Date, Table
|
|||
|
|
from sqlalchemy.orm import relationship
|
||
|
|
from database import Base
|
||
|
|
from model.teacher_model import teacher_student
|
||
|
|
|
||
|
|
|
||
|
|
# 。创建新学生记录(包含字段:学生编号ID、学生班级、学生姓名、籍贯、毕业院校、专业、入学时间、毕
|
||
|
|
# 业时间、学历、顾问编号、年龄、性别).可选增加字段:状态(在读、进入就业、已就业)
|
||
|
|
# 。查询学生信息(支持按编号、姓名、班级等条件筛选)、
|
||
|
|
# 更新学生信息。
|
||
|
|
# 逻辑删除学生。
|
||
|
|
# 。提示:可设计学号生成规则,而非单一自增,可选扩展:支持上传Excel 文件批量创建学生
|
||
|
|
class Student(Base):
|
||
|
|
__tablename__ = 'student'
|
||
|
|
sid = Column(Integer, primary_key=True, autoincrement=True)
|
||
|
|
student_no=Column(String(50), unique=True, nullable=False)
|
||
|
|
student_name=Column(String(50), nullable=False)
|
||
|
|
native_place=Column(String(200), nullable=True)
|
||
|
|
school=Column(String(100), nullable=True)
|
||
|
|
major=Column(String(50), nullable=True)
|
||
|
|
enrollment_time=Column(Date, nullable=True)
|
||
|
|
graduation_time=Column(Date, nullable=True)
|
||
|
|
education=Column(String(100), nullable=True)
|
||
|
|
age=Column(Integer, nullable=True)
|
||
|
|
gender=Column(String(20), nullable=True)
|
||
|
|
state=Column(String(20),nullable=True)
|
||
|
|
flag=Column(Integer,nullable=False,default=1)
|
||
|
|
class_id = Column(Integer, ForeignKey('classes.cid'), nullable=False)
|
||
|
|
teachers = relationship("Teacher", secondary=teacher_student, back_populates="students")
|
||
|
|
advisor = relationship("Advisor", back_populates="students")
|
||
|
|
advisor_id = Column(Integer, ForeignKey('advisor.id'), nullable=False)
|
||
|
|
scores=relationship("Score",back_populates="student")
|
||
|
|
classes = relationship("Classes", back_populates="students")
|
||
|
|
|
||
|
|
|