オンライン試験システムをサポートする MySQL テーブル構造を設計するにはどうすればよいですか?
インターネットの急速な発展に伴い、オンライン試験システムを利用して試験を実施する教育機関や企業が増えています。効率的で信頼性の高いオンライン検査システムは、合理的なデータベース設計と切り離すことができません。この記事では、オンライン試験システムをサポートするための MySQL テーブル構造の設計方法と具体的なコード例を紹介します。
オンライン試験システムの機能をサポートするには、ユーザー テーブル、試験テーブル、質問テーブル、解答記録テーブル、スコア テーブルのテーブルを設計する必要があります。各テーブルのデザインを以下に紹介します。
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;
上記は、オンライン試験システムをサポートする MySQL テーブル構造を設計するための基本的な考え方とコード例です。データベースのテーブル構造を合理的に設計することで、システムのパフォーマンスと保守性が向上し、オンライン検査システムがより効率的で安全かつ安定したものになります。この記事がオンライン試験システムのデータベース構造の設計に役立つことを願っています。
以上がオンライン試験システムをサポートする MySQL テーブル構造をどのように設計するか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。