Maison >base de données >tutoriel mysql >Comment stocker efficacement plusieurs cours par étudiant dans une base de données MySQL ?
Stockage de plusieurs cours pour les étudiants dans une base de données MySQL
Question :
Je dois créer une structure de base de données qui permet aux étudiants d'avoir plusieurs cours associés. Comment puis-je concevoir une table pour stocker ces données efficacement ?
Réponse :
Le stockage des données dans des tableaux au sein d'une table peut sembler pratique, mais cela peut conduire à des performances et problèmes d’intégrité des données. Une meilleure approche consiste à créer des tables séparées et à établir des relations entre elles à l'aide de clés étrangères.
Voici une structure de base de données suggérée :
1. Créer une table étudiante
CREATE TABLE student ( studentId INT AUTO_INCREMENT PRIMARY KEY, fullName VARCHAR(100) NOT NULL );
2. Créer une table de cours
CREATE TABLE course ( courseId INT AUTO_INCREMENT PRIMARY KEY, courseName VARCHAR(100) NOT NULL );
3. Créer une table de jonction (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) );
Relations :
Exemple de données :
-- 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);
Avantages de la jonction Tables :
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!