Logo MySQL | Logo de MySQL | Logo MySQL

Description du défi :

  • Créez des tableaux qui doivent stocker les informations sur les étudiants, les informations sur les cours et les notes reçues par les étudiants. Votre table doit remplir les conditions suivantes :
    • La déclaration de l’étudiant doit être son prénom, son nom de famille et sa l'identifiant de l'étudiant.
    • Les informations sur le cours doivent être le nom et le code du cours.
    • Les informations sur la note correspondent à la valeur alphabétique de la note.
    • Un cours peut avoir de nombreux étudiants et les étudiants peuvent suivre plusieurs cours parmi les cours disponibles.
    • Un étudiant peut être inscrit à plusieurs cours.

Pour créer votre base de données, procédez comme suit :

  • Selon la description, les tableaux des étudiants et des cours doivent avoir une relation plusieurs-à-plusieurs.
  • Par conséquent, une quatrième table enrollments peut être créée dans notre conception pour stocker tous les étudiants inscrits et leurs cours respectifs; et le tableau grades peut stocker tous les étudiants inscrits et leurs notes respectives pour les classes spécifiées.
  • Le tableau grades est définie comme suit:
CREATE TABLE grades( gradeID INT UNSIGNED AUTO_INCREMENT PRIMARY KEY, grade_value VARCHAR(4) NOT NULL, studentID INT UNSIGNED NOT NULL, courseID INT UNSIGNED NOT NULL, created_at TIMESTAMP DEFAULT NOW() ON UPDATE CURRENT_TIMESTAMP, CONSTRAINT FK_studentID FOREIGN KEY (studentID) REFERENCES students(studentID) ON DELETE CASCADE, CONSTRAINT FK_courseID FOREIGN KEY (courseID) REFERENCES courses(courseID) ON DELETE CASCADE);
  • La colonne created_at possède sa valeur par défaut (DEFAULT) définie sur NOW() qui retourne l’horodatage au moment où un élément est inséré. Cette colonne est mise à jour (ON UPDATE) au moment où une mise à jour est appliquée à cet enregistrement (CURRENT_TIMESTAMP). NOW() est similaire à CURRENT_TIMESTAMP.
  • Le tableau enrollments est défini comme suit:
 CREATE TABLE enrollments( enrollementID INT UNSIGNED AUTO_INCREMENT PRIMARY KEY, studentID INT UNSIGNED NOT NULL, courseID INT UNSIGNED NOT NULL, created_at TIMESTAMP DEFAULT NOW() ON UPDATE CURRENT_TIMESTAMP, CONSTRAINT FK_enr_studentID FOREIGN KEY (studentID) REFERENCES students(studentID) ON DELETE CASCADE, CONSTRAINT FK_enr_courseID FOREIGN KEY (courseID) REFERENCES courses(courseID) ON DELETE CASCADE );
  • Finalement, le tableau students et courses peuvent être définies comme suit:
CREATE TABLE students( studentID INT UNSIGNED AUTO_INCREMENT PRIMARY KEY, firstname VARCHAR(30) NOT NULL, lastname VARCHAR(30) NOT NULL, created_at TIMESTAMP DEFAULT NOW() ON UPDATE CURRENT_TIMESTAMP ); CREATE TABLE courses( courseID INT UNSIGNED AUTO_INCREMENT PRIMARY KEY, course_name VARCHAR(30) NOT NULL, course_code INT UNSIGNED NOT NULL, created_at TIMESTAMP DEFAULT NOW() ON UPDATE CURRENT_TIMESTAMP );
  • Diagramme entité-relation:
  • Ceci n’est pas un design optimal.

Notre entreprise propose des formations SQL en ligne et en présentiel. Inscrivez-vous dès maintenant et rejoignez la communauté.

Catégories:

Étiquettes:

Pas encore de réponse

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont marqués d’un *