>데이터 베이스 >MySQL 튜토리얼 >온라인 시험 시스템의 시험 점수 통계를 지원하기 위해 MySQL 테이블 구조를 설계하는 방법은 무엇입니까?

온라인 시험 시스템의 시험 점수 통계를 지원하기 위해 MySQL 테이블 구조를 설계하는 방법은 무엇입니까?

WBOY
WBOY원래의
2023-10-31 09:42:321250검색

온라인 시험 시스템의 시험 점수 통계를 지원하기 위해 MySQL 테이블 구조를 설계하는 방법은 무엇입니까?

온라인 시험 시스템의 시험 점수 통계를 지원하기 위해 MySQL 테이블 구조를 설계하는 방법은 무엇입니까?

소개
온라인 시험 시스템은 현대 교육의 중요한 구성 요소 중 하나입니다. 학생들의 시험 성적에 대한 통계 및 분석을 수행하기 위해서는 시험 정보를 저장할 적절한 데이터베이스 테이블 구조를 설계해야 한다. 이 기사에서는 온라인 시험 시스템의 시험 점수 통계를 지원하기 위해 MySQL 테이블 구조를 설계하는 방법을 소개하고 구체적인 코드 예제를 제공합니다.

테이블 구조 설계
MySQL 테이블 구조를 설계할 때는 학생, 시험, 시험 문제, 점수 등의 요소를 고려해야 합니다. 다음은 간단한 테이블 구조 설계 예시이다.

학생 테이블(학생)

필드 이름 데이터 유형 Description
id INT 학생 ID
이름 VARCHAR 학생 이름
grade VARCHAR 학생 학년
class VARCHAR Class
생성 시간 DATETIME 학생 정보가 생성된 시간

시험 양식(시험)

ㅋㅋㅋ 필드 이름데이터 유형설명 idINT시험 ID
필드 이름 데이터 유형 Description
id INT 시험 ID
name VARCHAR 시험 이름
time DATETIME 시험 시간

exam_id

INT시험 IDcontentTEXT시험 문제 내용 AnswerVARCHAR정답 생성 시간 eDateTime 정보 생성 시간 필드 이름 데이터 유형 IndInT 점수 IDstudent_idINT 학생 IDexam_idINT
점수(점수)

시험 ID

scoreFLOAT Achievements생성 시간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 테이블 구조를 설계하는 것은 중요하고 복잡한 작업입니다. 테이블 구조를 합리적으로 설계하고 쿼리문을 유연하게 사용함으로써 다양한 시험 점수에 대한 통계 및 분석을 쉽게 수행할 수 있습니다. 위의 내용은 간단한 예이며 실제 필요에 따라 적절하게 조정 및 확장할 수 있습니다.

위 내용은 온라인 시험 시스템의 시험 점수 통계를 지원하기 위해 MySQL 테이블 구조를 설계하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.