feat: 初始化学生管理系统代码
This commit is contained in:
@@ -0,0 +1,3 @@
|
||||
from sqlalchemy.orm import declarative_base
|
||||
|
||||
Base = declarative_base()
|
||||
@@ -0,0 +1,17 @@
|
||||
from sqlalchemy import Column, Integer, String
|
||||
from sqlalchemy.orm import declarative_base, relationship
|
||||
from database import Base
|
||||
|
||||
class Advisor(Base):
|
||||
__tablename__ = 'advisor'
|
||||
id = Column(Integer, primary_key=True, autoincrement=True)
|
||||
advisor_no = Column(String(32), unique=True, nullable=False)
|
||||
name = Column(String(50), nullable=False)
|
||||
gender = Column(String(2), nullable=False)
|
||||
phone = Column(String(20), nullable=False)
|
||||
remark=Column(String(500), nullable=True)
|
||||
statu = Column(Integer, default=1, nullable=False)
|
||||
students=relationship("Student", back_populates="advisor")
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,17 @@
|
||||
from sqlalchemy import Column, Integer, String, Date
|
||||
from sqlalchemy.orm import relationship
|
||||
from database import Base
|
||||
from model.teacher_class import teacher_class
|
||||
from model.teacher import Teacher
|
||||
from model.student import Student
|
||||
# 导入中间关联表
|
||||
|
||||
# 班级信息表
|
||||
class ClassInfo(Base):
|
||||
__tablename__="classinfo"
|
||||
id=Column(Integer,primary_key=True,autoincrement=True)
|
||||
class_name=Column(String(50),nullable=False,unique=True)
|
||||
start_time=Column(Date)
|
||||
statu=Column(Integer,default=1) # 逻辑删除表字段 1代表存在
|
||||
teachers=relationship(Teacher,secondary=teacher_class,back_populates="classinfo")
|
||||
students= relationship(Student,back_populates="classinfo")
|
||||
@@ -0,0 +1,20 @@
|
||||
from sqlalchemy import Column, Integer, String, Float, ForeignKey, DateTime, Date
|
||||
from sqlalchemy.orm import relationship
|
||||
from database import Base
|
||||
|
||||
class Employment(Base):
|
||||
__tablename__="employment"
|
||||
id=Column(Integer,primary_key=True, autoincrement=True)
|
||||
name=Column(String(50))
|
||||
stu_id=Column(Integer,ForeignKey("student.id"),unique=True,nullable=False,index=True)
|
||||
employment_open_time=Column(DateTime,nullable=True)
|
||||
offer_time=Column(DateTime,nullable=True)
|
||||
company_name=Column(String(50),nullable=True)
|
||||
salary=Column(Float,nullable=True)
|
||||
is_deleted = Column(Integer, default=0, nullable=False, comment="0未删除 1已删除")
|
||||
student=relationship("Student",back_populates="employment")
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,17 @@
|
||||
# model/score.py
|
||||
from sqlalchemy import Column, Integer, Float, ForeignKey, DateTime
|
||||
from sqlalchemy.orm import relationship
|
||||
from datetime import datetime
|
||||
from database import Base
|
||||
|
||||
|
||||
class Score(Base):
|
||||
__tablename__ = "score"
|
||||
id = Column(Integer, primary_key=True, autoincrement=True) # 主键
|
||||
student_id = Column(Integer, ForeignKey("student.id"), nullable=False) #外键
|
||||
exam_seq = Column(Integer, nullable=False)
|
||||
score = Column(Float, nullable=False)
|
||||
is_warning = Column(Integer, default=0) #低分预警 0正常 1不及格
|
||||
is_deleted = Column(Integer, default=0) #是否被逻辑删除
|
||||
create_time = Column(DateTime, default=datetime.now)
|
||||
student = relationship("Student", back_populates="scores")
|
||||
@@ -0,0 +1,29 @@
|
||||
from sqlalchemy import create_engine, Column, Integer, String, Float, ForeignKey, Table, Date
|
||||
from sqlalchemy.orm import relationship
|
||||
from model import Base
|
||||
|
||||
class Student(Base):
|
||||
__tablename__="student"
|
||||
id = Column(Integer, primary_key=True, autoincrement=True)
|
||||
stu_id=Column(String(50),unique=True)
|
||||
name = Column(String(50), nullable=False)
|
||||
hometown=Column(String(100))
|
||||
school = Column(String(100))
|
||||
major= Column(String(100))
|
||||
enroll_time=Column(String(100))
|
||||
graduate_time=Column(String(100))
|
||||
education=Column(String(100))
|
||||
age=Column(Integer)
|
||||
gender=Column(String(10))
|
||||
statu=Column(Integer,nullable=False)
|
||||
advisor_id = Column(Integer, ForeignKey("advisor.id"), nullable=True)
|
||||
class_id = Column(Integer, ForeignKey("classinfo.id"))
|
||||
advisor = relationship("Advisor", back_populates="students")#关联顾问
|
||||
scores = relationship("Score", back_populates="student")#关联成绩
|
||||
employment=relationship("Employment", back_populates="student")#关联就业
|
||||
classinfo = relationship("ClassInfo", back_populates="students")#关联班级
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,17 @@
|
||||
from sqlalchemy import Column, Integer, String, ForeignKey,Date,DateTime
|
||||
from sqlalchemy.orm import relationship
|
||||
from sqlalchemy.sql import func
|
||||
from model import Base
|
||||
from model.teacher_class import teacher_class
|
||||
|
||||
|
||||
class Teacher(Base):
|
||||
__tablename__="teacher"
|
||||
id=Column(Integer,primary_key=True,autoincrement=True)
|
||||
teacher_no=Column(String(50),unique=True,nullable=False)
|
||||
name=Column(String(50),nullable=False)
|
||||
phone=Column(String(50),nullable=False)
|
||||
is_deleted=Column(Integer,default=0)
|
||||
created_at=Column(DateTime,server_default=func.now())
|
||||
updated_at=Column(DateTime,onupdate=func.now())
|
||||
classinfo = relationship("ClassInfo",secondary=teacher_class, back_populates="teachers")
|
||||
@@ -0,0 +1,12 @@
|
||||
from sqlalchemy import create_engine, Column, Integer, String, Float, ForeignKey, Table, Date
|
||||
from sqlalchemy.orm import relationship
|
||||
from model import Base
|
||||
|
||||
teacher_class = Table(
|
||||
"teacher_class", # 中间表的名字
|
||||
Base.metadata, # 绑定到 Base 的元数据
|
||||
Column("class_id", Integer, ForeignKey("classinfo.id"), primary_key=True),
|
||||
Column("teacher_id", Integer, ForeignKey("teacher.id"), primary_key=True) ,
|
||||
Column("role",String(50))
|
||||
|
||||
)
|
||||
Reference in New Issue
Block a user