diff --git a/mysql.sql b/mysql.sql index 074b95e..d044250 100644 --- a/mysql.sql +++ b/mysql.sql @@ -1,121 +1,255 @@ -CREATE TABLE user ( - user_id INT AUTO_INCREMENT PRIMARY KEY, - nickname VARCHAR(50) NOT NULL, - phone_number VARCHAR(15) NOT NULL UNIQUE, - password VARCHAR(255) NOT NULL, - identity ENUM('teacher', 'student') NOT NULL, - status BOOLEAN NOT NULL +CREATE TABLE user +( + user_id INT AUTO_INCREMENT PRIMARY KEY, + nickname VARCHAR(50) NOT NULL, + phone_number VARCHAR(15) NOT NULL UNIQUE, + password VARCHAR(255) NOT NULL, + identity ENUM('teacher', 'student') NOT NULL, + status BOOLEAN NOT NULL ); -INSERT INTO user (nickname, phone_number, password, identity, status) VALUES -('学生', '1', '$2b$12$okY88GrzlUHb/Ox1ENwtqeBUnE0bgMOCPy.UKmFaTnu3El7EYX8Em', 'student', TRUE), -('老师', '2', '$2b$12$okY88GrzlUHb/Ox1ENwtqeBUnE0bgMOCPy.UKmFaTnu3El7EYX8Em', 'teacher', TRUE); +INSERT INTO user (nickname, phone_number, password, identity, status) +VALUES ('学生', '1', '$2b$12$okY88GrzlUHb/Ox1ENwtqeBUnE0bgMOCPy.UKmFaTnu3El7EYX8Em', 'student', TRUE), + ('老师', '2', '$2b$12$okY88GrzlUHb/Ox1ENwtqeBUnE0bgMOCPy.UKmFaTnu3El7EYX8Em', 'teacher', TRUE); - -CREATE TABLE menu_items ( - id INT AUTO_INCREMENT PRIMARY KEY, +CREATE TABLE menu_items +( + id INT AUTO_INCREMENT PRIMARY KEY, menu_name VARCHAR(100), - path VARCHAR(255), - role ENUM('student', 'teacher'), - `order` INT + path VARCHAR(255), + role ENUM('student', 'teacher'), + `order` INT ); -INSERT INTO menu_items (menu_name, role, path, `order`) VALUES -('课程信息', 'student', '/course-info', 1), -('课程签到', 'student', '/attendance', 2), -('公告信息', 'student', '/announcement', 3), -('签到提醒', 'student', '/attendance-reminder', 4); +INSERT INTO menu_items (menu_name, role, path, `order`) +VALUES ('课程信息', 'student', '/course-info', 1), + ('课程签到', 'student', '/attendance', 2), + ('公告信息', 'student', '/announcement', 3), + ('签到提醒', 'student', '/attendance-reminder', 4); -INSERT INTO menu_items (menu_name, role, path, `order`) VALUES -('课程类别', 'teacher', '/course-category', 1), -('课程信息', 'teacher', '/course-info', 2), -('课程签到', 'teacher', '/attendance', 3), -('签到提醒', 'teacher', '/attendance-reminder', 4); +INSERT INTO menu_items (menu_name, role, path, `order`) +VALUES ('课程类别', 'teacher', '/course-category', 1), + ('课程信息', 'teacher', '/course-info', 2), + ('课程签到', 'teacher', '/attendance', 3), + ('签到提醒', 'teacher', '/attendance-reminder', 4); -CREATE TABLE courses ( - course_id INT AUTO_INCREMENT PRIMARY KEY, +CREATE TABLE course +( + course_id INT AUTO_INCREMENT PRIMARY KEY, course_name VARCHAR(255) NOT NULL, - course_code VARCHAR(50) NOT NULL, - instructor_name VARCHAR(255) NOT NULL, - credits INT, - description TEXT, - attendance_info TEXT + course_code VARCHAR(50) NOT NULL, + course_type ENUM('选修', '必修') NOT NULL, + credits INT, + description TEXT ); -INSERT INTO courses (course_name, course_code, instructor_name, credits, description, attendance_info) VALUES -('高级数学', 'MTH101', 'John Doe', 4, '高级数学是一门研究数学理论的课程,包括微积分、线性代数等', 'JSON或其他格式的签到数据'), -('物理学', 'PHY101', 'Jane Smith', 3, '物理学是自然科学的一部分,涉及物质和能量的性质和现象', 'JSON或其他格式的签到数据'), -('化学', 'CHEM101', 'Emily Davis', 4, '化学是研究物质的组成、结构、性质和变化规律的科学', 'JSON或其他格式的签到数据'), -('英语', 'ENG101', 'Mark Wilson', 3, '英语课程旨在提高学生的语言技能,包括阅读、写作、听力和口语', 'JSON或其他格式的签到数据'), -('生物学', 'BIO101', 'David Johnson', 3, '生物学是自然科学的一部分,研究生命和生物体', 'JSON或其他格式的签到数据'), -('计算机科学', 'CS101', 'Alice Brown', 4, '计算机科学是研究信息和计算机系统的理论基础', 'JSON或其他格式的签到数据'), -('心理学', 'PSY101', 'Chris Green', 3, '心理学是科学研究心理和行为的科学', 'JSON或其他格式的签到数据'), -('历史', 'HIS101', 'Paula Adams', 2, '历史课程涵盖了世界历史的主要事件、人物和发展', 'JSON或其他格式的签到数据'), -('艺术', 'ART101', 'Laura White', 2, '艺术课程探索各种艺术形式和表达方式', 'JSON或其他格式的签到数据'), -('经济学', 'ECO101', 'Peter Parker', 3, '经济学是研究生产、分配和消费资源的社会科学', 'JSON或其他格式的签到数据'); +INSERT INTO course (course_name, course_code, course_type, credits, description) +VALUES ('大学计算机基础', 'CF001', '必修', 3, '介绍计算机基础知识和应用'), + ('计算机导论', 'ITC002', '必修', 2, '概述计算机科学的基本概念和原理'), + ('C++程序设计', 'CP001', '必修', 4, '学习C++编程语言及其应用'), + ('健康教育', 'HE001', '必修', 1, '提升学生的健康意识和生活方式'), + ('线性代数及其应用', 'LAAA001', '必修', 4, '学习线性代数的基础理论和实际应用'), + ('高等数学2A', 'AM_2A', '必修', 4, '深化数学知识,包括微积分、矩阵理论等'), + ('思想道德修养与法律基础', 'MALS001', '必修', 2, '培养学生的道德素质和法律意识'), + ('体育A', 'PE_A', '必修', 1, '提高学生的身体素质和运动技能'), + ('英语读写译1A', 'ERWT_1A', '必修', 3, '提升学生的英语阅读、写作和翻译能力'), + ('英语听力1A', 'EL_1A', '必修', 2, '提高学生的英语听力理解能力'), + ('英语口语1A', 'ES_1A', '必修', 2, '提升学生的英语口语表达能力'), + ('法制安全教育', 'LASE001', '必修', 1, '增强学生的法制观念和安全意识'), + ('大学二外日语A', 'JSFL_A', '选修', 3, '学习基础的日语语法和词汇'), + ('军事理论', 'MT01', '必修', 2, '了解军事基本理论和国防知识'), + ('程序设计实践', 'PP02', '必修', 3, '通过实践项目提升编程能力'), + ('高等数学2B', 'AM_2B', '必修', 4, '进一步深化高等数学知识'), + ('中国近现代史纲要', 'OFCMH010', '必修', 2, '概述中国近现代历史发展脉络'), + ('体育B', 'PE_B', '必修', 1, '继续提升学生的身体素质和运动技能'), + ('英语听力1B', 'EL_1B', '必修', 2, '进一步提高学生的英语听力理解能力'), + ('英语读写译1B', 'ERWT_1B', '必修', 3, '深化英语阅读、写作和翻译能力'), + ('英语口语1B', 'ES_1B', '必修', 2, '进一步提升学生的英语口语表达能力'), + ('大学生心理健康', 'CSMH01', '必修', 2, '关注和提升大学生的心理健康水平'), + ('大学物理2A', 'UP_2A', '必修', 4, '学习大学物理的基础理论和实验'), + ('数字逻辑', 'DL002', '必修', 3, '学习数字电路和逻辑设计的基础知识'), + ('C++面向对象程序设计', 'CPOB02', '必修', 4, '深入学习C++的面向对象特性及其应用'), + ('创新人才与大学文化', 'IND010', '选修', 2, '探讨创新人才培养和大学文化建设'), + ('数据结构', 'DS001', '必修', 4, '学习各种数据结构及其算法'), + ('Java语言程序设计', 'JS012', '必修', 4, '学习Java编程语言及其应用'), + ('离散数学导论', 'IDTM01', '必修', 3, '介绍离散数学的基础知识和应用'), + ('计算机网络', 'CN002', '必修', 4, '学习计算机网络的基础理论和协议'); -CREATE TABLE attendance_records ( - record_id INT AUTO_INCREMENT PRIMARY KEY, - course_id INT NOT NULL, - student_id INT NOT NULL, - date DATE NOT NULL, - status ENUM('present', 'absent', 'late', 'excused'), - FOREIGN KEY (course_id) REFERENCES courses(course_id), - FOREIGN KEY (student_id) REFERENCES students(student_id) +CREATE TABLE attendance_records +( + record_id INT AUTO_INCREMENT PRIMARY KEY, + course_id INT NOT NULL, + student_id INT NOT NULL, + date DATE NOT NULL, + status ENUM('present', 'absent', 'late', 'excused'), + FOREIGN KEY (course_id) REFERENCES courses (course_id), + FOREIGN KEY (student_id) REFERENCES students (student_id) ); -CREATE TABLE class_courses ( +CREATE TABLE class_course +( class_course_id INT AUTO_INCREMENT PRIMARY KEY, - class_id INT NOT NULL, - course_id INT NOT NULL, - user_id INT NOT NULL, - FOREIGN KEY (class_id) REFERENCES classes(class_id), - FOREIGN KEY (course_id) REFERENCES courses(course_id), - FOREIGN KEY (user_id) REFERENCES user(user_id), + class_id INT NOT NULL, + course_id INT NOT NULL, + FOREIGN KEY (class_id) REFERENCES class (class_id), + FOREIGN KEY (course_id) REFERENCES course (course_id) ); -INSERT INTO class_courses(class_id,course_id,user_id) VALUES -(1,2,2), -(1,3,2), -(2,6,2); +INSERT INTO class_course(class_id, course_id) +VALUES (1, 1), + (1, 2), + (1, 3), + (1, 4), + (1, 5), + (1, 6), + (1, 7), + (1, 8), + (2, 1), + (2, 2), + (2, 3), + (2, 6), + (2, 10), + (2, 16), + (2, 13), + (2, 26), + (3, 30), + (3, 29), + (3, 28), + (3, 27), + (3, 25), + (3, 24), + (3, 4), + (3, 13), + (4, 11), + (4, 12), + (4, 14), + (4, 16), + (4, 15), + (4, 20), + (4, 7), + (4, 26); -CREATE TABLE classes ( - class_id INT AUTO_INCREMENT PRIMARY KEY, + +CREATE TABLE class +( + class_id INT AUTO_INCREMENT PRIMARY KEY, class_name VARCHAR(255) NOT NULL, - major VARCHAR(255) + major VARCHAR(255) ); -CREATE TABLE students ( - student_id INT AUTO_INCREMENT PRIMARY KEY, - student_number VARCHAR(20) NOT NULL, - student_name VARCHAR(255) NOT NULL, - class_id INT, - FOREIGN KEY (class_id) REFERENCES classes(class_id) +INSERT INTO class(class_name, major) +values ('2023级一班', '计算机科学与技术'), + ('2023级二班', '电子工程'), + ('2023级三班', '经济学'), + ('2023级四班', '生物学'); + +CREATE TABLE students +( + student_id INT AUTO_INCREMENT PRIMARY KEY, + student_number VARCHAR(20) NOT NULL, + student_name VARCHAR(255) NOT NULL, + class_id INT, + FOREIGN KEY (class_id) REFERENCES classes (class_id) ); -INSERT INTO students (student_name, student_number,class_id) VALUES ('王伟',202300001000, 8); -INSERT INTO students (student_name, student_number,class_id) VALUES ('李娜',202300001001, 6); -INSERT INTO students (student_name, student_number,class_id) VALUES ('张伟', 202300001002, 5); -INSERT INTO students (student_name, student_number,class_id) VALUES ('刘洋', 202300001003, 8); -INSERT INTO students (student_name, student_number,class_id) VALUES ('陈敏', 202300001004, 7); -INSERT INTO students (student_name, student_number,class_id) VALUES ('杨静', 202300001005, 1); -INSERT INTO students (student_name, student_number,class_id) VALUES ('赵媛媛',202300001006, 4); -INSERT INTO students (student_name, student_number,class_id) VALUES ('黄进', 202300001007, 6); -INSERT INTO students (student_name, student_number,class_id) VALUES ('周杰',202300001008, 2); -INSERT INTO students (student_name, student_number,class_id) VALUES ('吴琳',202300001009, 1); -INSERT INTO students (student_name, student_number,class_id) VALUES ('徐涛',202300001010, 5); -INSERT INTO students (student_name, student_number,class_id) VALUES ('孙怡', 202300001011, 3); -INSERT INTO students (student_name, student_number,class_id) VALUES ('朱元璋',202300001012, 2); -INSERT INTO students (student_name, student_number,class_id) VALUES ('马云', 202300001013, 4); -INSERT INTO students (student_name, student_number,class_id) VALUES ('胡雪', 202300001014, 7); -INSERT INTO students (student_name, student_number,class_id) VALUES ('郭敬明', 202300001015, 9); -INSERT INTO students (student_name, student_number,class_id) VALUES ('林芳', 202300001016, 6); -INSERT INTO students (student_name, student_number,class_id) VALUES ('段誉', 202300001017, 4); -INSERT INTO students (student_name, student_number,class_id) VALUES ('曹操', 202300001018, 2); -INSERT INTO students (student_name, student_number,class_id) VALUES ('刘备', 202300001019, 2); \ No newline at end of file +INSERT INTO student (student_name, student_number, class_id) +VALUES ('王伟', 202300001000, 1); +INSERT INTO student (student_name, student_number, class_id) +VALUES ('李娜', 202300001001, 1); +INSERT INTO student (student_name, student_number, class_id) +VALUES ('张伟', 202300001002, 1); +INSERT INTO student (student_name, student_number, class_id) +VALUES ('刘洋', 202300001003, 1); +INSERT INTO student (student_name, student_number, class_id) +VALUES ('陈敏', 202300001004, 1); +INSERT INTO student (student_name, student_number, class_id) +VALUES ('杨静', 202300001005, 2); +INSERT INTO student (student_name, student_number, class_id) +VALUES ('赵媛媛', 202300001006, 2); +INSERT INTO student (student_name, student_number, class_id) +VALUES ('黄进', 202300001007, 2); +INSERT INTO student (student_name, student_number, class_id) +VALUES ('周杰', 202300001008, 2); +INSERT INTO student (student_name, student_number, class_id) +VALUES ('吴琳', 202300001009, 2); +INSERT INTO student (student_name, student_number, class_id) +VALUES ('徐涛', 202300001010, 3); +INSERT INTO student (student_name, student_number, class_id) +VALUES ('孙怡', 202300001011, 3); +INSERT INTO student (student_name, student_number, class_id) +VALUES ('朱元璋', 202300001012, 3); +INSERT INTO student (student_name, student_number, class_id) +VALUES ('马云', 202300001013, 3); +INSERT INTO student (student_name, student_number, class_id) +VALUES ('胡雪', 202300001014, 3); +INSERT INTO student (student_name, student_number, class_id) +VALUES ('郭敬明', 202300001015, 4); +INSERT INTO student (student_name, student_number, class_id) +VALUES ('林芳', 202300001016, 4); +INSERT INTO student (student_name, student_number, class_id) +VALUES ('段誉', 202300001017, 4); +INSERT INTO student (student_name, student_number, class_id) +VALUES ('曹操', 202300001018, 4); +INSERT INTO student (student_name, student_number, class_id) +VALUES ('刘备', 202300001019, 4); + +CREATE TABLE teacher +( + teacher_id INT AUTO_INCREMENT, + name VARCHAR(100) NOT NULL, + user_id INT, + PRIMARY KEY (teacher_id), + FOREIGN KEY (user_id) REFERENCES user (user_id) +); + +INSERT INTO teacher (name, user_id) +VALUES ('教师1', 1), + ('教师2', 2), + ('教师3', 3), + ('教师4', 4); + +CREATE TABLE teacher_class_course +( + id INT AUTO_INCREMENT, + teacher_id INT, + class_course_id INT, + PRIMARY KEY (id), + FOREIGN KEY (teacher_id) REFERENCES teachers (teacher_id), + FOREIGN KEY (class_course_id) REFERENCES class_courses (class_course_id) +); + + + +CREATE TABLE schedules +( + schedule_id INT AUTO_INCREMENT, + day_of_week INT, + period_id INT, + class_course_id INT, + teacher_id INT, + PRIMARY KEY (schedule_id), + FOREIGN KEY (period_id) REFERENCES course_periods (period_id), + FOREIGN KEY (class_course_id) REFERENCES class_courses (class_course_id), + FOREIGN KEY (teacher_id) REFERENCES teachers (teacher_id) +); + +CREATE TABLE time_period +( + period_id INT AUTO_INCREMENT, + period_name VARCHAR(10), + start_time TIME, + end_time TIME, + PRIMARY KEY (period_id) +); + +INSERT INTO time_period (period_name, start_time, end_time) +VALUES ('一、二节', '08:00:00', '09:30:00'), + ('三、四节', '10:00:00', '11:30:00'), + ('五、六节', '14:30:00', '16:00:00'), + ('七、八节', '16:30:00', '18:00:00');