ホームページ >データベース >mysql チュートリアル >オンライン試験システムをサポートする MySQL テーブル構造をどのように設計するか?

オンライン試験システムをサポートする MySQL テーブル構造をどのように設計するか?

王林
王林オリジナル
2023-10-31 09:30:221456ブラウズ

オンライン試験システムをサポートする MySQL テーブル構造をどのように設計するか?

オンライン試験システムをサポートする MySQL テーブル構造を設計するにはどうすればよいですか?

インターネットの急速な発展に伴い、オンライン試験システムを利用して試験を実施する教育機関や企業が増えています。効率的で信頼性の高いオンライン検査システムは、合理的なデータベース設計と切り離すことができません。この記事では、オンライン試験システムをサポートするための MySQL テーブル構造の設計方法と具体的なコード例を紹介します。

オンライン試験システムの機能をサポートするには、ユーザー テーブル、試験テーブル、質問テーブル、解答記録テーブル、スコア テーブルのテーブルを設計する必要があります。各テーブルのデザインを以下に紹介します。

  1. ユーザー テーブル
    ユーザー テーブルは主に、ユーザー名、パスワード、名前、電子メールなど、検査システムのユーザー情報を保存するために使用されます。ユーザーは、学生や教師など、さまざまな役割に分けることができます。テーブル構造は次のとおりです。
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;
  1. 試験テーブル
    試験テーブルは、試験名、試験時間、試験期間などを含む試験情報を保存するために使用されます。各試験には複数の質問が含まれる場合があります。テーブル構造は次のとおりです。
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;
  1. 質問テーブル
    質問テーブルは、質問の内容、回答の選択肢、正解などを含む、各試験の問題情報を保存するために使用されます。テーブル構造は次のとおりです。
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;
  1. 回答レコード テーブル
    回答レコード テーブルは、ユーザー ID、質問 ID、ユーザーが選択した回答などのユーザーの回答レコードを保存するために使用されます。 、回答時間など。テーブル構造は次のとおりです。
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;
  1. スコア テーブル
    スコア テーブルは、ユーザー ID、テスト ID、スコアなどを含むユーザーのテスト スコアを保存するために使用されます。テーブル構造は次のとおりです。
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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。