This commit is contained in:
Lys
2026-09-21 22:13:04 +08:00
commit 1e302df9ed
63 changed files with 1268 additions and 0 deletions
+15
View File
@@ -0,0 +1,15 @@
from sqlalchemy import Column, Integer, String, DateTime, Float, Date
from sqlalchemy.orm import relationship
from database import Base
from model.teacher import class_teacher
class Class(Base):
__tablename__ = "student_class"
cid = Column(Integer, primary_key=True)
class_name=Column(String(20),nullable=False)
start_time=Column(Date,nullable=False)
headteacher=Column(String(20),nullable=False)
flag=Column(Integer,nullable=False,default=1)
teachers=relationship("Teacher",secondary=class_teacher,back_populates="classes")
student = relationship("Student", back_populates="classes")
+23
View File
@@ -0,0 +1,23 @@
from sqlalchemy import Column, Integer, String, DateTime, Float, Date, ForeignKey
from sqlalchemy.orm import relationship
from database import Base
class Student(Base):
__tablename__ = "student"
sid=Column(Integer,primary_key=True,autoincrement=True)
cid =Column(Integer, ForeignKey("student_class.cid"),nullable=False)#班级编号,外键关联班级表
name=Column(String(30),nullable=False)#学生姓名,字符串形式,不能为空值(必填)
address=Column(String(50),nullable=False)#籍贯,字符串形式,不能为空值(必填)
school=Column(String(50),nullable=False)#毕业院校,字符串形式,不能为空值(必填)
major=Column(String(50),nullable=False)#专业,字符串形式,不能为空值(必填)
start_time=Column(Date,nullable=False)#入学时间,字符串形式,不能为空值(必填)
end_time=Column(Date,nullable=True)#毕业时间,字符串形式,可以为空值(未毕业学生)
education=Column(String(20),nullable=False)#学历 ,字符串形式,不能为空值(必填)
consultant_id=Column(Integer,nullable=False)#顾问编号,整数
gender=Column(String(3),nullable=False)#性别,字符串
age=Column(Integer,nullable=False)#年龄
flag=Column(Integer,nullable=False)#逻辑删除,当值为1是保留,当值为0时删除
score=relationship("Score",back_populates="student")
work=relationship("Work",back_populates="student")
classes=relationship("Class",back_populates="student")
@@ -0,0 +1,18 @@
# model/users.py
# 本文件定义 User 表的结构,映射到 MySQL 数据库
from sqlalchemy import Column, Integer, String, DateTime, Float, ForeignKey
from sqlalchemy.orm import relationship
from database import Base
from model.student import Student
#建立学生考核表模型
class Score(Base):
__tablename__ = "student_score" # 表名
# 字段定义
score_id = Column(Integer, primary_key=True,autoincrement=True) # 主键,自增,索引
sid = Column(Integer,ForeignKey("student.sid"),nullable=False) # 用户名,唯一,非空
exam_num=Column(Integer)#考核次数
score=Column(Float)#分数
flag=Column(Integer,default=1)#状态
#一对多 成绩表
student=relationship("Student", back_populates="score")
+17
View File
@@ -0,0 +1,17 @@
from sqlalchemy import Column, Integer, String, DateTime, Float, Date, Table, ForeignKey
from sqlalchemy.orm import relationship
from database import Base
class_teacher=Table("class_teacher",Base.metadata,
Column("cid",Integer,ForeignKey("student_class.cid"),primary_key=True),
Column("teacher_id",Integer,ForeignKey("teacher.teacher_id"),primary_key=True))
class Teacher(Base):
__tablename__="teacher"
teacher_id=Column(Integer,primary_key=True,autoincrement=True,comment="老师id")
teacher_name=Column(String(50),nullable=False)
gender=Column(String(5),comment="性别")
phone=Column(String(20),comment="联系电话")
is_headteacher=Column(Integer,default=0,comment="数据状态 1-班主任 0-教师")
flag=Column(Integer,default=1,comment="数据状态 1-正常 0-删除")
classes=relationship("Class",secondary=class_teacher,back_populates="teachers")
+17
View File
@@ -0,0 +1,17 @@
from sqlalchemy import Column, Integer, String, Date, Float, Numeric, ForeignKey
from sqlalchemy import create_engine
from sqlalchemy.orm import relationship
SQ_URL = "mysql+pymysql://root:123456@localhost:3306/student_system"
engine = create_engine(SQ_URL,pool_size=5,echo=True)
from database import Base
class Work(Base):
__tablename__ = 'student_work'
# 包含字段:学生编号ID、学生姓名、学生班级、就业开放时间、offer下发时间、就业公司名称、就业薪资
employment_id = Column(Integer, autoincrement=True,primary_key=True)
sid = Column(Integer,ForeignKey("student.sid"), unique=True)
open_time = Column(Date, default="1970-01-01")
offer_time = Column(Date, default="1970-01-01")
company_name = Column(String(50))
salary = Column(Numeric(10,2))
flag = Column(Integer, default=1)
student = relationship("Student", back_populates="work")