移除与main冲突的model修改

This commit is contained in:
2026-09-21 19:59:58 +08:00
parent 946d428c8b
commit 1c220c2a3e
5 changed files with 41 additions and 79 deletions
+11 -18
View File
@@ -1,35 +1,32 @@
from sqlalchemy import (Column, Integer, String, Text,
BigInteger,ForeignKey,VARCHAR,DateTime,UniqueConstraint,text
BigInteger,ForeignKey,VARCHAR,DateTime
)
from sqlalchemy.dialects.mysql import TINYINT
from sqlalchemy.dialects.mssql import TINYINT
from core.database import Base
from datetime import datetime
#班级老师关系表 class_teachers 中间表 ORM 模型完整定义
#班级老师关系表 class_teachers_info_detail 中间表 ORM 模型完整定义
#字段包括id,class_id,teacher_id,role,created_at,updated_at,is_deleted
class ClassTeachers(Base):
__tablename__ = "class_teachers"
__table_args__ = (
UniqueConstraint("class_id", "teacher_id", "role", name="uk_class_teacher_role"),
)
__tablename__ = "class_teachers_info_detail"
id = Column(
BigInteger
Integer
,primary_key=True
,autoincrement=True
,comment='关系')
class_id = Column(
Integer
,ForeignKey('classes.id')
,ForeignKey('class_info_detail.id')
,nullable=False
,comment='关联 classes.id'
,comment='关联 class_id'
)
teacher_id = Column(
Integer
,ForeignKey('teachers.id')
,ForeignKey("teacher_info_detail.id")
,nullable=False
,comment='关联 teachers.id'
,comment='关联 teacher_id'
)
role = Column(
VARCHAR(30)
@@ -39,22 +36,18 @@ class ClassTeachers(Base):
created_at = Column(
DateTime
,nullable=False
,default=datetime.now
,server_default=text("CURRENT_TIMESTAMP")
,default=datetime.now()
,comment='创建时间'
)
updated_at = Column(
DateTime
,nullable=False
,default=datetime.now
,onupdate=datetime.now
,server_default=text("CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP")
,default=datetime.now()
,comment='更新时间'
)
is_deleted = Column(
TINYINT
,nullable=False
,default=0
,server_default=text("0")
,comment='逻辑删除'
)
+6 -15
View File
@@ -1,5 +1,4 @@
from sqlalchemy import *
from sqlalchemy.dialects.mysql import TINYINT
from sqlalchemy.orm import declarative_base,sessionmaker
from datetime import datetime
from core.database import Base, engine
@@ -7,17 +6,15 @@ from core.database import Base, engine
# 为了符合三范式,就业表只保存 student_id,不保存学生姓名和班级名称。查询返回时通过关联 students 和 classes 带出学生姓名、班级名称。
class Employment(Base):
__tablename__ = "employments" # 实际数据库的表名字
id = Column(BigInteger, primary_key=True # 主键
__tablename__ = "employment_info_detail" # 实际数据库的表名字
id = Column(Integer, primary_key=True # 主键
, autoincrement=True # 声明是自增主键
,comment="就业信息主键id")
student_id = Column(Integer, ForeignKey("students.id") # 外键 -> students.id
student_id = Column(Integer, ForeignKey("student_info_detail.id") # 外键 -> students.id
, nullable=False # 不允许为null
, unique=True # 每个学生只对应一条就业信息
,comment="关联学生id")
employment_status = Column(String(30)
employment_status = Column(String(50)
, default="not_started"
, nullable=False
,comment="就业状态:not_started/job_hunting/offered/employed")
employment_open_date = Column(Date
,comment="就业开放时间")
@@ -25,25 +22,19 @@ class Employment(Base):
,comment="offer下发时间")
company_name = Column(String(100)
, comment="就业公司名称")
salary = Column(DECIMAL(10, 2) # 定点小数薪资,最多10位数字,小数占2位
salary = Column(DECIMAL(10, 2) # 高精度浮点数薪资,最多 10 位数字,小数占 2 位
, comment="就业薪资")
remark = Column(String(255)
,default=None
, comment="备注信息")
created_at = Column(DateTime
, default=datetime.now
, server_default=text("CURRENT_TIMESTAMP")
, nullable=False
, comment="创建时间")
updated_at = Column(DateTime
, default=datetime.now
, onupdate=datetime.now
, server_default=text("CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP")
, nullable=False
,comment="更新时间")
is_deleted = Column(TINYINT
is_deleted = Column(SmallInteger
,default=0
,server_default=text("0")
,nullable=False
,comment="逻辑删除:0正常,1删除")
+7 -15
View File
@@ -1,22 +1,20 @@
from sqlalchemy import *
from sqlalchemy.dialects.mysql import TINYINT
from core.database import Base
from datetime import datetime,date
class Score(Base):
__tablename__ = "scores"
__tablename__ = "score_info_detail"
id = Column(Integer
, primary_key=True
,autoincrement=True
,comment="成绩表序号,自增主键"
)
student_id = Column(Integer
,ForeignKey("students.id")
,ForeignKey("student_info_detail.id")
,nullable=False
,comment="学生学号"
)
score = Column(DECIMAL(4,1)
,CheckConstraint("score between 0 and 100")
,nullable=False
)
exam_seq= Column(Integer
, nullable=False
@@ -24,31 +22,25 @@ class Score(Base):
__table_args__ = (
UniqueConstraint("student_id"
, "exam_seq"
, name="uk_scores_student_exam"),
)#学生id和考核序次联合唯一,即一个学生一次考试只能有一个分数
, name="uk_student_exam_seq"),
)#学生id和学生姓名应为联合唯一,即一个学生一次考试只能有一个分数
exam_date=Column(Date
,default=date.today
,comment="考试日期"
)
created_at=Column(DateTime
,default=datetime.now
,server_default=text("CURRENT_TIMESTAMP")
,nullable=False
,comment="创建时间"
)
updated_at=Column(DateTime
,default=datetime.now
,onupdate=datetime.now
,server_default=text("CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP")
,nullable=False
,comment="更新时间"
)
remark=Column(String(255)
remark=Column(String(225)
,comment="备注说明"
)
is_deleted=Column(TINYINT
is_deleted=Column(Integer
,default=0
,server_default=text("0")
,nullable=False
,comment="逻辑删除标记:未删除0,已删除1"
)
)
+12 -21
View File
@@ -1,30 +1,27 @@
from core.database import Base
from sqlalchemy import *
from sqlalchemy.dialects.mysql import TINYINT
from datetime import datetime
class Student(Base):
__tablename__ = 'students'
__tablename__ = 'student_info_detail'
id = Column(Integer
, primary_key=True
, autoincrement=True
, comment = '学生编号,自增主键'
)
student_no = Column(VARCHAR(50)
, unique = True
, nullable = False)
student_name = Column(VARCHAR(50), nullable=False)
, unique = True)
student_name = Column(VARCHAR(50))
class_id = Column(Integer
,ForeignKey('classes.id')
,nullable = False
,ForeignKey('class_info_detail.id')
)#外键约束 班级表的主键id,存在这个班级,学生表才可以输入
consultant_id = Column(Integer
,ForeignKey('consultants.id')
, ForeignKey('consultant_info_detail.id')
,nullable = True
)#外键约束 顾问表的主键id,存在这个顾问,才可以写入,允许为空
native_place = Column(VARCHAR(100)
,nullable = True)
graduate_school = Column(VARCHAR(100)
graduation_school = Column(VARCHAR(100)
,nullable = True)
major = Column(VARCHAR(100)
,nullable = True)
@@ -38,17 +35,11 @@ class Student(Base):
,nullable = False)
gender = Column(VARCHAR(10)
,nullable = False)
created_at = Column(DATETIME
create_at = Column(DATETIME
,default = datetime.now)
update_at = Column(DATETIME
,default = datetime.now
,server_default = text("CURRENT_TIMESTAMP")
,nullable = False)
updated_at = Column(DATETIME
,default = datetime.now
,onupdate = datetime.now
,server_default = text("CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP")
,nullable = False)
is_deleted = Column(TINYINT
,default = 0
,server_default = text("0")
,nullable = False)#逻辑删除,默认为0,为1则表示已删除
,onupdate = datetime.now)
is_deleted = Column(Integer
,default = 0)#逻辑删除,默认为0,为1则表示已删除
+5 -10
View File
@@ -1,15 +1,14 @@
from sqlalchemy import (Column, Integer,VARCHAR,DateTime,text
from sqlalchemy import (Column, Integer,VARCHAR,DateTime
)
from sqlalchemy.dialects.mysql import TINYINT
from sqlalchemy.dialects.mssql import TINYINT
from core.database import Base
from datetime import datetime
# teachers 老师表 ORM 模型
#字段包括id,teacher_no,teacher_name,phone,email,remark,created_at,updated_at,is_deleted
class Teacher(Base):
__tablename__ = 'teachers'
__tablename__ = 'teacher_info_detail'
id = Column(
Integer
, primary_key=True
@@ -37,30 +36,26 @@ class Teacher(Base):
,comment='邮箱'
)
remark = Column(
VARCHAR(255)
VARCHAR(2550)
,nullable=True
,comment='备注'
)
created_at = Column(
DateTime
DateTime
,nullable=False
,default=datetime.now
,server_default=text("CURRENT_TIMESTAMP")
,comment='创建时间'
)
updated_at = Column(
DateTime
,nullable=False
,default=datetime.now
,onupdate=datetime.now
,server_default=text("CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP")
,comment='更新时间'
)
is_deleted = Column(
TINYINT
,nullable=False
,default=0
,server_default=text("0")
,comment='逻辑删除'
)