在 MySQL 数据库中为学生存储多门课程
问题:
我需要创建一个数据库结构,允许学生附加多个课程。如何设计一个表来有效地存储这些数据?
答案:
将数据存储在表中的数组中可能看起来很方便,但它可能会导致性能和性能下降。数据完整性问题。更好的方法是创建单独的表并使用外键在它们之间建立关系。
以下是建议的数据库结构:
1。创建学生表
CREATE TABLE student ( studentId INT AUTO_INCREMENT PRIMARY KEY, fullName VARCHAR(100) NOT NULL );
2.创建课程表
CREATE TABLE course ( courseId INT AUTO_INCREMENT PRIMARY KEY, courseName VARCHAR(100) NOT NULL );
3.创建连接表(Student_Course)
CREATE TABLE student_course ( studentId INT, courseId INT, PRIMARY KEY (studentId, courseId), FOREIGN KEY (studentId) REFERENCES student(studentId), FOREIGN KEY (courseId) REFERENCES course(courseId) );
关系:
示例数据:
-- Insert Students INSERT INTO student (fullName) VALUES ('Alice Jones'), ('Bob Smith'), ('Carol White'); -- Insert Courses INSERT INTO course (courseName) VALUES ('History 101'), ('Math 201'), ('English 301'); -- Enroll Students in Courses INSERT INTO student_course (studentId, courseId) VALUES (1, 1), (1, 2), (2, 1), (2, 3);
Junction 的好处表:
以上是如何在 MySQL 数据库中高效地存储每个学生的多门课程?的详细内容。更多信息请关注PHP中文网其他相关文章!