219 lines
8.6 KiB
Python
219 lines
8.6 KiB
Python
from database import SessionLocal
|
|
from model import Advisor, Score, Student, Classes, Teacher, Employment
|
|
|
|
advisor_data = [
|
|
{"advisor_name": "张建国", "flag": 1, "gender": "男", "phone": "13812345601"},
|
|
{"advisor_name": "李美玲", "flag": 1, "gender": "女", "phone": "13912345602"},
|
|
{"advisor_name": "王浩宇", "flag": 1, "gender": "男", "phone": "13712345603"},
|
|
{"advisor_name": "陈雅婷", "flag": 1, "gender": "女", "phone": "13612345604"},
|
|
{"advisor_name": "刘志强", "flag": 1, "gender": "男", "phone": "13512345605"},
|
|
{"advisor_name": "赵晓雯", "flag": 1, "gender": "女", "phone": "13412345606"},
|
|
{"advisor_name": "黄俊凯", "flag": 1, "gender": "男", "phone": "13312345607"},
|
|
{"advisor_name": "周雨欣", "flag": 1, "gender": "女", "phone": "13212345608"},
|
|
{"advisor_name": "吴海涛", "flag": 1, "gender": "男", "phone": "13112345609"},
|
|
{"advisor_name": "徐思琪", "flag": 1, "gender": "女", "phone": "13012345610"},
|
|
]
|
|
score_data=[
|
|
{"student_id":1,"exam_id":1,"score":100},
|
|
{"student_id":1,"exam_id":2,"score":99},
|
|
{"student_id":1,"exam_id":3,"score":98},
|
|
{"student_id":2,"exam_id":1,"score":90},
|
|
{"student_id":2,"exam_id":2,"score":89},
|
|
{"student_id":2,"exam_id":3,"score":88},
|
|
{"student_id":3,"exam_id":1,"score":80},
|
|
{"student_id":3,"exam_id":2,"score":79},
|
|
{"student_id":3,"exam_id":3,"score":78},
|
|
{"student_id":4,"exam_id":1,"score":50},
|
|
{"student_id":4,"exam_id":2,"score":50},
|
|
{"student_id":4,"exam_id":3,"score":50}
|
|
]
|
|
student_data = [
|
|
{
|
|
"student_no": 20240001,
|
|
"student_name": "张小明",
|
|
"native_places": "广东深圳",
|
|
"school": "深圳大学",
|
|
"major": "计算机科学",
|
|
"enrollment_time": "2024-09-01 00:00:00",
|
|
"graduation_time": "2028-06-30 00:00:00",
|
|
"education": "本科",
|
|
"advisor_id": 1,
|
|
"age": 18,
|
|
"gender": "男",
|
|
"status": "在读",
|
|
"flag": 1,
|
|
"class_id": 1 # 归属班级cid=1 计科2401
|
|
},
|
|
{
|
|
"student_no": 20240002,
|
|
"student_name": "李华",
|
|
"native_places": "广东汕头",
|
|
"school": "深圳大学",
|
|
"major": "计算机科学",
|
|
"enrollment_time": "2024-09-01 00:00:00",
|
|
"graduation_time": "2028-06-30 00:00:00",
|
|
"education": "本科",
|
|
"advisor_id": 1,
|
|
"age": 18,
|
|
"gender": "男",
|
|
"status": "在读",
|
|
"flag": 1,
|
|
"class_id": 1 # 归属班级cid=1 计科2401
|
|
},
|
|
{
|
|
"student_no": 20240003,
|
|
"student_name": "小红",
|
|
"native_places": "广东广州",
|
|
"school": "深圳大学",
|
|
"major": "计算机科学",
|
|
"enrollment_time": "2024-09-01 00:00:00",
|
|
"graduation_time": "2028-06-30 00:00:00",
|
|
"education": "本科",
|
|
"advisor_id": 1,
|
|
"age": 18,
|
|
"gender": "女",
|
|
"status": "在读",
|
|
"flag": 1,
|
|
"class_id": 2 # 归属班级cid=2 计科2402
|
|
},
|
|
{
|
|
"student_no": 20240004,
|
|
"student_name": "阿琳",
|
|
"native_places": "广东佛山",
|
|
"school": "深圳大学",
|
|
"major": "计算机科学",
|
|
"enrollment_time": "2024-09-01 00:00:00",
|
|
"graduation_time": "2028-06-30 00:00:00",
|
|
"education": "本科",
|
|
"advisor_id": 1,
|
|
"age": 18,
|
|
"gender": "女",
|
|
"status": "在读",
|
|
"flag": 1,
|
|
"class_id": 3 # 归属班级cid=3 软工2401
|
|
},
|
|
{
|
|
"student_no": 20240005,
|
|
"student_name": "小宇",
|
|
"native_places": "广东东莞",
|
|
"school": "深圳大学",
|
|
"major": "计算机科学",
|
|
"enrollment_time": "2024-09-01 00:00:00",
|
|
"graduation_time": "2028-06-30 00:00:00",
|
|
"education": "本科",
|
|
"advisor_id": 1,
|
|
"age": 18,
|
|
"gender": "男",
|
|
"status": "在读",
|
|
"flag": 1,
|
|
"class_id": 4 # 归属班级cid=4 大数据2401
|
|
}
|
|
]
|
|
classes_data = [
|
|
{"cid": 1, "class_name": "计科2401", "start_time": "2024-09-01 08:00:00", "head_teacher": "王主任", "teacher": "李老师", "is_del": 0},
|
|
{"cid": 2, "class_name": "计科2402", "start_time": "2024-09-01 08:00:00", "head_teacher": "王主任", "teacher": "张老师", "is_del": 1},
|
|
{"cid": 3, "class_name": "软工2401", "start_time": "2024-09-01 08:00:00", "head_teacher": "刘主任", "teacher": "陈老师", "is_del": 0},
|
|
{"cid": 4, "class_name": "大数据2401", "start_time": "2024-09-01 08:00:00", "head_teacher": "刘主任", "teacher": "黄老师", "is_del": 1},
|
|
{"cid": 5, "class_name": "人工智能2401", "start_time": "2024-09-01 08:00:00", "head_teacher": "赵主任", "teacher": "周老师", "is_del": 0}
|
|
]
|
|
teacher_data = [
|
|
{"tid":1,"t_name":"李老师","phone":"13800138001","subject":"Python","entry_time":"2020-09-01","is_deleted":1},
|
|
{"tid":2,"t_name":"张老师","phone":"13800138002","subject":"高等数学","entry_time":"2021-02-10","is_deleted":1},
|
|
{"tid":3,"t_name":"陈老师","phone":"13800138003","subject":"数据库","entry_time":"2022-03-05","is_deleted":1},
|
|
{"tid":4,"t_name":"黄老师","phone":"13800138004","subject":"计算机网络","entry_time":"2021-09-01","is_deleted":1},
|
|
{"tid":5,"t_name":"赵老师","phone":"13800138005","subject":"操作系统","entry_time":"2023-01-15","is_deleted":1},
|
|
]
|
|
employment_data = [
|
|
{"student_id":1,"employment_start_time":"2026-07-01 09:00:00","offer_time":"2026-06-15 14:30:00","company_name":"腾讯","salary":18000.0},
|
|
{"student_id":2,"employment_start_time":"2026-07-10 08:30:00","offer_time":"2026-06-20 10:00:00","company_name":"字节跳动","salary":22000.0},
|
|
{"student_id":3,"employment_start_time":"2026-08-01 09:00:00","offer_time":"2026-07-05 16:20:00","company_name":"阿里","salary":20000.0},
|
|
{"student_id":4,"employment_start_time":None,"offer_time":"2026-08-10 11:10:00","company_name":"美团","salary":15000.0},
|
|
{"student_id":5,"employment_start_time":"2026-08-15 09:30:00","offer_time":None,"company_name":"百度","salary":16500.0},
|
|
]
|
|
db = SessionLocal()
|
|
|
|
|
|
#顾问表初始数据
|
|
def seed_advisor():
|
|
"""插入顾问种子数据(如果表为空)。"""
|
|
try:
|
|
if db.query(Advisor).count() == 0:
|
|
db.bulk_insert_mappings(Advisor, advisor_data)
|
|
db.commit()
|
|
print(f"顾问数据插入成功,共 {len(advisor_data)} 条")
|
|
else:
|
|
print("顾问表已有数据,跳过插入")
|
|
finally:
|
|
db.close()
|
|
|
|
#学生表初始数据
|
|
def seed_student():
|
|
try:
|
|
if db.query(Student).count() == 0:
|
|
db.bulk_insert_mappings(Student, student_data)
|
|
db.commit()
|
|
print(f"学生数据插入成功,共 {len(student_data)} 条")
|
|
else:
|
|
print("学生表已有数据,跳过插入")
|
|
finally:
|
|
db.close()
|
|
|
|
#成绩表初始数据
|
|
def seed_score():
|
|
try:
|
|
if db.query(Score).count() == 0:
|
|
db.bulk_insert_mappings(Score, score_data)
|
|
db.commit()
|
|
print(f"成绩数据插入成功,共{len(score_data)}条")
|
|
else:
|
|
print("成绩表已有数据,跳过插入")
|
|
finally:
|
|
db.close()
|
|
|
|
#班级表初始数据
|
|
def seed_classes():
|
|
try:
|
|
if db.query(Classes).count() == 0:
|
|
db.bulk_insert_mappings(Classes, classes_data)
|
|
db.commit()
|
|
print(f"班级数据插入成功,共{len(classes_data)}条")
|
|
else:
|
|
print("班级表已有数据,跳过插入")
|
|
finally:
|
|
db.close()
|
|
|
|
#老师表初始数据
|
|
def seed_teacher():
|
|
try:
|
|
if db.query(Teacher).count() == 0:
|
|
db.bulk_insert_mappings(Teacher, teacher_data)
|
|
db.commit()
|
|
print(f"老师数据插入成功,共{len(teacher_data)}条")
|
|
else:
|
|
print("老师表已有数据,跳过插入")
|
|
finally:
|
|
db.close()
|
|
|
|
#就业表初始数据
|
|
def seed_employment():
|
|
try:
|
|
if db.query(Employment).count() == 0:
|
|
db.bulk_insert_mappings(Employment, employment_data)
|
|
db.commit()
|
|
print(f"就业数据插入成功,共{len(employment_data)}条")
|
|
else:
|
|
print("就业表已有数据,跳过插入")
|
|
finally:
|
|
db.close()
|
|
#所有表数据
|
|
def seed_all():
|
|
seed_classes() # 1 班级
|
|
seed_advisor() # 2 顾问
|
|
seed_student() # 3 学生(依赖班级+顾问)
|
|
seed_teacher() # 4 老师
|
|
seed_score() # 5 成绩表(依赖学生sid、老师tid)
|
|
seed_employment()
|
|
# 中间表teacher_class / teacher_student 只建表,不填充数据,注释掉
|
|
# seed_teacher_class(db)
|
|
# seed_teacher_student(db)
|