オンライン試験システムでの試験問題の生成と管理をサポートする MySQL テーブル構造を設計するにはどうすればよいですか?
オンライン試験システムの試験用紙の生成と管理をサポートする MySQL テーブル構造を設計する前に、まずオンライン試験システムの基本要件と機能を理解する必要があります。オンライン試験システムには通常、ユーザー管理、試験用紙管理、問題管理、試験管理などのモジュールが含まれています。この記事では、試験用紙の生成と管理のテーブル構造の設計に焦点を当てます。
1. ユーザー管理
ユーザー管理モジュールは、ユーザー ID、ユーザー名、パスワード、役割、その他のフィールドを含む、システム内のユーザー情報を管理するために使用されます。以下に簡単なユーザー テーブルの例を示します。
CREATE TABLE `users` ( `id` INT(10) NOT NULL AUTO_INCREMENT, `username` VARCHAR(50) NOT NULL, `password` VARCHAR(50) NOT NULL, `role` ENUM('admin', 'teacher', 'student') NOT NULL, PRIMARY KEY (`id`), UNIQUE KEY `username_UNIQUE` (`username`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
2. 試験用紙管理
試験用紙管理モジュールは、試験用紙情報の作成、変更、削除に使用されます。通常、テスト用紙には、テスト用紙 ID、テスト用紙名、合計スコア、作成者などのフィールドが含まれます。以下はテスト シートの簡単な例です:
CREATE TABLE `papers` ( `id` INT(10) NOT NULL AUTO_INCREMENT, `name` VARCHAR(100) NOT NULL, `total_score` FLOAT NOT NULL, `creator_id` INT(10) NOT NULL, PRIMARY KEY (`id`), FOREIGN KEY (`creator_id`) REFERENCES `users` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
3. 質問管理
質問管理モジュールは、質問 ID、質問タイプ、内容、オプションなどのテスト質問情報を管理するために使用されます。 、答えとポイントのフィールド。以下は、質問シートの簡単な例です。
CREATE TABLE `questions` ( `id` INT(10) NOT NULL AUTO_INCREMENT, `paper_id` INT(10) NOT NULL, `type` ENUM('single_choice', 'multiple_choice', 'true_false', 'short_answer') NOT NULL, `content` TEXT NOT NULL, `options` TEXT, `answer` TEXT NOT NULL, `score` FLOAT NOT NULL, PRIMARY KEY (`id`), FOREIGN KEY (`paper_id`) REFERENCES `papers` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
4. 試験管理
試験管理モジュールは、受験者に試験問題を割り当て、受験者の解答と得点を記録するために使用されます。以下は、試験用紙と解答用紙の簡単な例です。
CREATE TABLE `exams` ( `id` INT(10) NOT NULL AUTO_INCREMENT, `paper_id` INT(10) NOT NULL, `user_id` INT(10) NOT NULL, `start_time` DATETIME NOT NULL, `end_time` DATETIME, PRIMARY KEY (`id`), FOREIGN KEY (`paper_id`) REFERENCES `papers` (`id`), FOREIGN KEY (`user_id`) REFERENCES `users` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; CREATE TABLE `answers` ( `id` INT(10) NOT NULL AUTO_INCREMENT, `exam_id` INT(10) NOT NULL, `question_id` INT(10) NOT NULL, `user_id` INT(10) NOT NULL, `answer` TEXT NOT NULL, PRIMARY KEY (`id`), FOREIGN KEY (`exam_id`) REFERENCES `exams` (`id`), FOREIGN KEY (`question_id`) REFERENCES `questions` (`id`), FOREIGN KEY (`user_id`) REFERENCES `users` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
上記のテーブル構造の設計を通じて、オンライン試験システムの試験用紙生成および管理機能を実現し、完全性と解答用紙の完全性を確保することができます。データの一貫性。実際のアプリケーションでは、特定のニーズに応じて、より複雑なテーブル構造の設計と最適化を実行できます。
以上がオンライン試験システムの試験用紙の生成と管理をサポートする MySQL テーブル構造をどのように設計するか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。