答案:设计学生选课系统需创建学生表、课程表和选课关系表,通过中间表处理多对多关系,设置外键与联合唯一索引防止重复选课,并建立索引提升查询效率,成绩字段置于中间表适用于单次考核场景。

需要三张表:学生表(student)、课程表(course)、选课关系表(student_course)。
学生表(student)创建表结构:
CREATE TABLE student ( student_id INT PRIMARY KEY AUTO_INCREMENT, name VARCHAR(50) NOT NULL, gender CHAR(1), class VARCHAR(20), create_time DATETIME DEFAULT CURRENT_TIMESTAMP ); CREATE TABLE course ( course_id INT PRIMARY KEY AUTO_INCREMENT, course_name VARCHAR(100) NOT NULL, teacher VARCHAR(50), credit INT, max_students INT DEFAULT 30 ); CREATE TABLE student_course ( id INT PRIMARY KEY AUTO_INCREMENT, student_id INT NOT NULL, course_id INT NOT NULL, select_time DATETIME DEFAULT CURRENT_TIMESTAMP, grade DECIMAL(4,1) NULL, FOREIGN KEY (student_id) REFERENCES student(student_id), FOREIGN KEY (course_id) REFERENCES course(course_id), UNIQUE KEY unique_enrollment (student_id, course_id) );
INSERT INTO student_course (student_id, course_id) VALUES (1001, 201);
SELECT c.course_name, c.teacher, sc.select_time FROM student_course sc JOIN course c ON sc.course_id = c.course_id WHERE sc.student_id = 1001;
SELECT COUNT(*) FROM student_course WHERE course_id = 201;
UPDATE student_course SET grade = 87.5 WHERE student_id = 1001 AND course_id = 201;
以上就是mysql如何设计学生选课关系表的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号