ホームページ > データベース > mysql チュートリアル > オンライン試験システムの試験問題管理をサポートするための MySQL テーブル構造を設計するにはどうすればよいですか?

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

WBOY
リリース: 2023-10-31 08:01:41
オリジナル
932 人が閲覧しました

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

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

オンライン試験システムでは通常、試験問題の追加、削除、変更、クエリなどの試験問題の管理が必要です。これらの操作をサポートするには、テスト問題データを保存するための合理的な MySQL テーブル構造を設計する必要があります。以下では、このテーブル構造を設計する方法と、対応するコード例を紹介します。

まず、テスト質問 ID、タイトル、選択肢、回答などのテスト質問の基本情報を保存する「questions」という名前のテーブルを作成する必要があります。テーブルの構造は次のように設計できます:

CREATE TABLEquestions(

id INT NOT NULL AUTO_INCREMENT,
title VARCHAR(255) NOT NULL,
option1 VARCHAR(255) NOT NULL,
option2 VARCHAR(255) NOT NULL,
option3 VARCHAR(255) NOT NULL,
option4 VARCHAR(255) NOT NULL,
answer VARCHAR(255) NOT NULL,
PRIMARY KEY (id)
ログイン後にコピー

);

このテーブルでは、id フィールドはテストの一意の識別子です。 AUTO_INCREMENT を設定すると、データベースはテスト問題 ID を自動的に生成します。 title フィールドにはテスト問題のタイトルが格納され、option1 ~ option4 フィールドにはテスト問題の選択肢がそれぞれ格納され、answer フィールドにはテスト問題に対する回答が格納されます。

次に、「exams」という名前のテーブルを作成して、試験用紙 ID、名前、説明などの試験用紙情報を保存します。このテーブルに外部キーを追加して、質問 ID をテスト用紙に関連付けることもできます。これにより、試験問題に含まれる問題を簡単に見つけることができます。テーブルの構造は次のとおりです。

CREATE TABLE Exam(

id INT NOT NULL AUTO_INCREMENT,
name VARCHAR(255) NOT NULL,
description VARCHAR(255) NOT NULL,
PRIMARY KEY (id)
ログイン後にコピー

);

このテーブルでは、id フィールドは試験用紙の一意の識別子です。 AUTO_INCREMENT を設定することでデータベースによって自動的に生成されます。 テスト用紙の ID。名前フィールドには試験用紙の名前が格納され、説明フィールドには試験用紙の説明が格納される。

次に、「exam_questions」という名前のテーブルを作成して、試験用紙の問題情報を保存します。このテーブルには、テスト用紙の ID と、テスト用紙に含まれる質問を表すために使用されるテスト問題の ID を含めることができます。テーブルの構造は次のとおりです。

CREATE TABLE Exam_questions(

exam_id INT NOT NULL,
question_id INT NOT NULL,
FOREIGN KEY (exam_id) REFERENCES exams(id),
FOREIGN KEY (question_id) REFERENCES questions(id)
ログイン後にコピー

);

このテーブルでは、exam_id フィールドと question_id フィールドがテストの ID を表します。それぞれ論文と質問のID。 FOREIGN KEY を設定して、試験テーブルと質問テーブルとの関連付けを作成します。

上記の設計により、オンライン試験システムの問題管理機能を実現できます。データを挿入してテスト問題とテスト用紙を追加したり、クエリ ステートメントを通じてテスト問題とテスト用紙に関する情報を取得したりできます。サンプル コードの一部を以下に示します。

  1. INSERT INTO 質問:

INSERT INTO 質問 (タイトル、オプション 1、オプション 2、オプション 3、オプション 4、回答) VALUES ('Question 1 ' 、'オプション A'、'オプション B'、'オプション C'、'オプション D'、'答え A');

  1. テスト用紙を挿入:

INSERT INTO 試験 (名前、説明) VALUES ('試験用紙 A', 'これは試験用紙 A の説明です');

  1. 試験用紙に質問を挿入します:

INSERT INTO Exam_questions (exam_id, question_id) VALUES (1, 1);

  1. テスト質問情報のクエリ:

SELECT * FROM 質問;

  1. クエリ テスト用紙 質問の場所:

SELECTquestions.title FROM Exam_questions
JOIN 質問 ON Exam_questions.question_id =questions.id
WHERE Exam_questions.exam_id = 1;

合格 サンプルコードを使用すると、試験問題と論文の管理およびクエリ機能を実装できます。

要約すると、オンライン試験システムの問題管理をサポートする MySQL テーブル構造を設計するには、questions テーブル、examples テーブル、exam_questions テーブルの 3 つのテーブルを作成する必要があります。これらのテーブルは、主キーと外部キーを介して関連付けることができ、テスト問題とテスト用紙の管理およびクエリ機能を実現します。上記のサンプルコードは、オンライン試験システムの試験問題管理を理解して実装するのに役立つことを願っています。

以上がオンライン試験システムの試験問題管理をサポートするための MySQL テーブル構造を設計するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート