オンライン試験システムのテストスコア統計をサポートする MySQL テーブル構造を設計するにはどうすればよいですか?
はじめに
オンライン試験システムは現代の教育の重要な要素の 1 つです。学生のテストのスコアの統計と分析を行うには、テスト情報を保存する適切なデータベース テーブル構造を設計する必要があります。この記事では、オンライン試験システムのテストスコア統計をサポートするための MySQL テーブル構造の設計方法を紹介し、具体的なコード例を示します。
テーブル構造の設計
MySQL テーブル構造を設計するときは、学生、試験、テスト問題、スコアなどの要素を考慮する必要があります。以下は簡単なテーブル構造の設計例です。
Students テーブル (学生)
フィールド名 | データ型 | 説明 |
---|---|---|
INT | 学生 ID | |
VARCHAR | 学生の名前 | |
VARCHAR | 学生の学年 | |
Class | 作成時間 | |
学生情報作成時間 | #試験フォーム (試験) |
説明 | ||
---|---|---|
試験 ID | name | |
試験名 | 時間 | |
試験時間 | 件名 | |
試験科目 | 作成時刻 | |
試験情報作成時刻 | 質問 (質問) |
説明 | ||
---|---|---|
試験 ID | exam_id | |
試験ID | 内容 | |
質問内容 | 回答 | |
正解 | 作成時間 | |
テスト問題情報作成時間 | スコア |
##フィールド名
id | ||
---|---|---|
student_id | INT | |
exam_id | INT | |
スコア | FLOAT | |
作成時刻 | DATETIME | |
サンプルコード | 上記のテーブル構造を利用したクエリのサンプルコードを以下に示します。
SELECT e.name AS exam_name, s.score FROM scores AS s JOIN exams AS e ON s.exam_id = e.id WHERE s.student_id = <student_id>;
SELECT AVG(score) AS average_score FROM scores AS s WHERE s.exam_id = <exam_id>;
SELECT st.name AS student_name, s.score FROM scores AS s JOIN students AS st ON s.student_id = st.id WHERE s.exam_id = <exam_id> AND s.score < <passing_score>;
SELECT COUNT(*) AS count, CASE WHEN score >= 90 THEN 'A' WHEN score >= 80 THEN 'B' WHEN score >= 70 THEN 'C' WHEN score >= 60 THEN 'D' ELSE 'F' END AS grade FROM scores WHERE exam_id = <exam_id> GROUP BY grade;
以上がオンライン試験システムのテストスコア統計をサポートする MySQL テーブル構造を設計するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。