Maison >base de données >tutoriel mysql >Comment concevoir une structure de table MySQL pour prendre en charge le système d'examen en ligne ?
Comment concevoir la structure de table MySQL pour prendre en charge le système d'examen en ligne ?
Avec le développement rapide d'Internet, de plus en plus d'établissements d'enseignement et d'entreprises ont commencé à adopter des systèmes d'examen en ligne pour organiser les examens. Un système d’examen en ligne efficace et fiable est indissociable d’une conception de base de données raisonnable. Cet article expliquera comment concevoir la structure de table MySQL pour prendre en charge le système d'examen en ligne et fournira des exemples de code spécifiques.
Afin de prendre en charge les fonctions du système d'examen en ligne, nous devons concevoir les tableaux suivants : tableau des utilisateurs, tableau d'examen, tableau des questions, tableau d'enregistrement des réponses et tableau des scores. La conception de chaque table sera présentée ci-dessous.
CREATE TABLE `user` ( `user_id` INT(11) NOT NULL AUTO_INCREMENT, `username` VARCHAR(255) NOT NULL, `password` VARCHAR(255) NOT NULL, `name` VARCHAR(255) NOT NULL, `email` VARCHAR(255) NOT NULL, `role` ENUM('student', 'teacher') NOT NULL, PRIMARY KEY (`user_id`), UNIQUE KEY `username_UNIQUE` (`username`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
CREATE TABLE `exam` ( `exam_id` INT(11) NOT NULL AUTO_INCREMENT, `exam_name` VARCHAR(255) NOT NULL, `exam_time` DATETIME NOT NULL, `duration` INT(11) NOT NULL, PRIMARY KEY (`exam_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
CREATE TABLE `question` ( `question_id` INT(11) NOT NULL AUTO_INCREMENT, `exam_id` INT(11) NOT NULL, `content` TEXT NOT NULL, `options` TEXT NOT NULL, `answer` VARCHAR(255) NOT NULL, PRIMARY KEY (`question_id`), FOREIGN KEY (`exam_id`) REFERENCES `exam`(`exam_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
CREATE TABLE `answer_record` ( `record_id` INT(11) NOT NULL AUTO_INCREMENT, `user_id` INT(11) NOT NULL, `question_id` INT(11) NOT NULL, `selected_answer` VARCHAR(255) NOT NULL, `answer_time` DATETIME NOT NULL, PRIMARY KEY (`record_id`), FOREIGN KEY (`user_id`) REFERENCES `user`(`user_id`), FOREIGN KEY (`question_id`) REFERENCES `question`(`question_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
CREATE TABLE `score` ( `score_id` INT(11) NOT NULL AUTO_INCREMENT, `user_id` INT(11) NOT NULL, `exam_id` INT(11) NOT NULL, `score` INT(11) NOT NULL, PRIMARY KEY (`score_id`), FOREIGN KEY (`user_id`) REFERENCES `user`(`user_id`), FOREIGN KEY (`exam_id`) REFERENCES `exam`(`exam_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
Ce qui précède sont les idées de base et des exemples de code pour concevoir la structure de table MySQL afin de prendre en charge le système d'examen en ligne. En concevant rationnellement la structure des tables de la base de données, les performances et la maintenabilité du système peuvent être améliorées, rendant le système d'examen en ligne plus efficace, sécurisé et stable. J'espère que cet article vous aidera à concevoir la structure de base de données de votre système d'examen en ligne.
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!