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 중국어 웹사이트의 기타 관련 기사를 참조하세요!