Maison >base de données >tutoriel mysql >Comment concevoir la structure de table MySQL pour prendre en charge la gestion des questions de test du système d'examen en ligne ?
Comment concevoir la structure de table MySQL pour prendre en charge la gestion des questions de test du système d'examen en ligne ?
Les systèmes d'examen en ligne nécessitent généralement la gestion des questions de test, y compris l'ajout, la suppression, la modification et l'interrogation des questions de test. Afin de prendre en charge ces opérations, nous devons concevoir une structure de table MySQL raisonnable pour stocker les données des questions de test. Ce qui suit présentera comment concevoir cette structure de table et donnera des exemples de code correspondants.
Tout d'abord, nous devons créer un tableau nommé « questions » pour stocker les informations de base des questions du test, y compris l'ID de la question, le titre, les options, les réponses, etc. La structure de la table peut être conçue comme suit :
CREATE TABLE questions(
id INT NOT NULL AUTO_INCREMENT, title VARCHAR(255) NOT NULL, option1 VARCHAR(255) NOT NULL, option2 VARCHAR(255) NOT NULL, option3 VARCHAR(255) NOT NULL, option4 VARCHAR(255) NOT NULL, answer VARCHAR(255) NOT NULL, PRIMARY KEY (id)
);
Dans cette table, le champ id est l'identifiant unique de la question. En définissant AUTO_INCREMENT, la base de données génère automatiquement l'ID de. la question. Le champ de titre est utilisé pour stocker le titre de la question de test, les champs option1 à option4 stockent respectivement les options de la question de test et le champ de réponse stocke la réponse à la question de test.
Ensuite, nous pouvons créer un tableau nommé « examens » pour stocker les informations sur le papier de test, y compris l'identifiant du papier de test, le nom, la description, etc. Nous pouvons également ajouter une clé étrangère à ce tableau pour associer l'identifiant de la question à l'épreuve. Cela facilite la recherche des questions incluses dans la copie d’examen. La structure du tableau est la suivante :
CREATE TABLE exams(
id INT NOT NULL AUTO_INCREMENT, name VARCHAR(255) NOT NULL, description VARCHAR(255) NOT NULL, PRIMARY KEY (id)
);
Dans ce tableau, le champ id est l'identifiant unique de la copie d'examen. En définissant AUTO_INCREMENT, la base de données génère automatiquement l'ID de l'examen. papier d'examen. Le champ de nom stocke le nom du papier de test et le champ de description stocke la description du papier de test.
Ensuite, nous pouvons créer une table nommée "exam_questions" pour stocker les informations sur les questions dans la copie d'examen. Ce tableau peut contenir l'ID de l'épreuve et l'ID de la question du test, qui est utilisé pour représenter les questions incluses dans l'épreuve. La structure du tableau est la suivante :
CREATE TABLE exam_questions(
exam_id INT NOT NULL, question_id INT NOT NULL, FOREIGN KEY (exam_id) REFERENCES exams(id), FOREIGN KEY (question_id) REFERENCES questions(id)
);
Dans ce tableau, le champ exam_id et le champ question_id représentent respectivement l'ID de l'épreuve de test et l'ID de la question. Créez des associations avec la table des examens et la table des questions en définissant FOREIGN KEY.
Grâce à la conception ci-dessus, nous pouvons réaliser la fonction de gestion des questions du système d'examen en ligne. Vous pouvez ajouter des questions de test et des épreuves de test en insérant des données, et obtenir des informations sur les questions de test et les épreuves de test via des instructions de requête. Un exemple de code est donné ci-dessous :
INSERT INTO questions (titre, option1, option2, option3, option4, réponse) VALEURS ('Question 1', 'Option A', 'Option B', 'Option C', 'Option D', 'Réponse A');
Insérer des questions dans la copie d'examen :
Requête d'informations sur la question :
Requête de questions dans la copie d'examen :
Grâce à l'exemple de code ci-dessus, nous pouvons implémenter les fonctions de gestion et de requête des questions et des épreuves de test.
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!