온라인 시험 시스템을 지원하기 위해 MySQL 테이블 구조를 설계하는 방법은 무엇입니까?
인터넷의 급속한 발전으로 점점 더 많은 교육 기관과 회사에서 시험을 실시하기 위해 온라인 시험 시스템을 채택하기 시작했습니다. 효율적이고 신뢰할 수 있는 온라인 시험 시스템은 합리적인 데이터베이스 설계와 불가분의 관계입니다. 이 기사에서는 온라인 시험 시스템을 지원하기 위해 MySQL 테이블 구조를 설계하는 방법을 소개하고 구체적인 코드 예제를 제공합니다.
온라인 시험 시스템의 기능을 지원하려면 사용자 테이블, 시험 테이블, 문제 테이블, 답안 기록 테이블, 점수 테이블 등의 테이블을 디자인해야 합니다. 각 테이블의 디자인은 아래에서 소개하겠습니다.
CREATE TABLE `user` ( `user_id` INT(11) NOT NULL AUTO_INCREMENT, `username` VARCHAR(255) NOT NULL, `password` VARCHAR(255) NOT NULL, `name` VARCHAR(255) NOT NULL, `email` VARCHAR(255) NOT NULL, `role` ENUM('student', 'teacher') NOT NULL, PRIMARY KEY (`user_id`), UNIQUE KEY `username_UNIQUE` (`username`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
CREATE TABLE `exam` ( `exam_id` INT(11) NOT NULL AUTO_INCREMENT, `exam_name` VARCHAR(255) NOT NULL, `exam_time` DATETIME NOT NULL, `duration` INT(11) NOT NULL, PRIMARY KEY (`exam_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
CREATE TABLE `question` ( `question_id` INT(11) NOT NULL AUTO_INCREMENT, `exam_id` INT(11) NOT NULL, `content` TEXT NOT NULL, `options` TEXT NOT NULL, `answer` VARCHAR(255) NOT NULL, PRIMARY KEY (`question_id`), FOREIGN KEY (`exam_id`) REFERENCES `exam`(`exam_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
CREATE TABLE `answer_record` ( `record_id` INT(11) NOT NULL AUTO_INCREMENT, `user_id` INT(11) NOT NULL, `question_id` INT(11) NOT NULL, `selected_answer` VARCHAR(255) NOT NULL, `answer_time` DATETIME NOT NULL, PRIMARY KEY (`record_id`), FOREIGN KEY (`user_id`) REFERENCES `user`(`user_id`), FOREIGN KEY (`question_id`) REFERENCES `question`(`question_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
CREATE TABLE `score` ( `score_id` INT(11) NOT NULL AUTO_INCREMENT, `user_id` INT(11) NOT NULL, `exam_id` INT(11) NOT NULL, `score` INT(11) NOT NULL, PRIMARY KEY (`score_id`), FOREIGN KEY (`user_id`) REFERENCES `user`(`user_id`), FOREIGN KEY (`exam_id`) REFERENCES `exam`(`exam_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
위는 온라인 시험 시스템을 지원하기 위한 MySQL 테이블 구조를 설계하기 위한 기본 아이디어와 코드 예시입니다. 데이터베이스 테이블 구조를 합리적으로 설계함으로써 시스템의 성능과 유지 관리 가능성을 향상시켜 온라인 시험 시스템을 더욱 효율적이고 안전하며 안정적으로 만들 수 있습니다. 이 기사가 온라인 시험 시스템의 데이터베이스 구조를 설계하는 데 도움이 되기를 바랍니다.
위 내용은 온라인 시험 시스템을 지원하기 위해 MySQL 테이블 구조를 설계하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!