55 lines
2.3 KiB
Python
55 lines
2.3 KiB
Python
from core.database import Base
|
|
from sqlalchemy import *
|
|
from sqlalchemy.dialects.mysql import TINYINT
|
|
from datetime import datetime
|
|
|
|
class Student(Base):
|
|
__tablename__ = 'students'
|
|
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)
|
|
class_id = Column(Integer
|
|
,ForeignKey('classes.id')
|
|
,nullable = False
|
|
)#外键约束 班级表的主键id,存在这个班级,学生表才可以输入
|
|
consultant_id = Column(Integer
|
|
,ForeignKey('consultants.id')
|
|
,nullable = True
|
|
)#外键约束 顾问表的主键id,存在这个顾问,才可以写入,允许为空
|
|
native_place = Column(VARCHAR(100)
|
|
,nullable = True)
|
|
graduate_school = Column(VARCHAR(100)
|
|
,nullable = True)
|
|
major = Column(VARCHAR(100)
|
|
,nullable = True)
|
|
enrollment_date = Column(Date
|
|
,nullable = False)#入学时间必填
|
|
graduation_date = Column(Date,
|
|
nullable = True)#毕业时间可以为空
|
|
education = Column(VARCHAR(50)
|
|
,nullable = True)#学历可以为空
|
|
age = Column(Integer
|
|
,nullable = False)
|
|
gender = Column(VARCHAR(10)
|
|
,nullable = False)
|
|
created_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则表示已删除
|
|
|