MySQL を使用してオンライン試験システムに適したテーブル構造を作成するにはどうすればよいですか?
オンライン試験システムのデータベースを設計する場合、試験問題、解答、スコアなどの試験関連情報を保存するテーブルをいくつか作成する必要があります。 MySQL では、テーブル構造を定義することでこれを実現できます。
まず、試験問題を保存するテーブルを作成する必要があります。各質問には固有の質問ID、質問の種類、内容、選択肢、正解などが存在するものとします。次のコードを使用してテーブルを作成できます:
CREATE TABLE IF NOT EXISTS `exam_questions` ( `question_id` INT(11) NOT NULL AUTO_INCREMENT, `question_type` VARCHAR(255) NOT NULL, `question_text` TEXT NOT NULL, `option_a` VARCHAR(255) NOT NULL, `option_b` VARCHAR(255) NOT NULL, `option_c` VARCHAR(255) NOT NULL, `option_d` VARCHAR(255) NOT NULL, `correct_answer` VARCHAR(255) NOT NULL, PRIMARY KEY (`question_id`) ) ENGINE=InnoDB;
次に、候補者の回答を保存するテーブルを作成する必要があります。各受験者は試験問題の ID に対応する一意の ID を持ち、回答は文字列で表されると想定します。次のコードを使用してテーブルを作成できます:
CREATE TABLE IF NOT EXISTS `exam_answers` ( `student_id` INT(11) NOT NULL, `question_id` INT(11) NOT NULL, `answer` VARCHAR(255) NOT NULL, PRIMARY KEY (`student_id`, `question_id`), FOREIGN KEY (`question_id`) REFERENCES `exam_questions` (`question_id`) ) ENGINE=InnoDB;
次に、受験者のスコアを保存するテーブルを作成する必要があります。各受験者には一意の ID があり、テストのスコアは浮動小数点数で表されると想定します。次のコードを使用してテーブルを作成できます:
CREATE TABLE IF NOT EXISTS `exam_scores` ( `student_id` INT(11) NOT NULL, `score` FLOAT NOT NULL, PRIMARY KEY (`student_id`), FOREIGN KEY (`student_id`) REFERENCES `exam_answers` (`student_id`) ) ENGINE=InnoDB;
最後に、試験記録を保存するためのテーブルを作成する必要があります。各受験者には一意の ID があり、試験の開始時刻と終了時刻、および期間はそれぞれタイムスタンプで表されると仮定します。次のコードを使用してテーブルを作成できます。
CREATE TABLE IF NOT EXISTS `exam_records` ( `student_id` INT(11) NOT NULL, `start_time` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, `end_time` TIMESTAMP NOT NULL DEFAULT '0000-00-00 00:00:00', `duration` INT(11) NOT NULL, PRIMARY KEY (`student_id`), FOREIGN KEY (`student_id`) REFERENCES `exam_scores` (`student_id`) ) ENGINE=InnoDB;
上記のコードにより、オンライン試験システムに適したテーブル構造を作成することができました。もちろん、実際の開発では、特定のニーズに応じてテーブル構造を調整および拡張する必要がある場合があります。この記事が、MySQL を使用してオンライン試験システムに適したテーブル構造を作成する方法を理解するのに役立つことを願っています。
以上がMySQLを使ってオンライン試験システムに適したテーブル構造を作成するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。