집 >데이터 베이스 >MySQL 튜토리얼 >온라인 시험 시스템의 시험 문제 관리를 지원하기 위해 MySQL 테이블 구조를 설계하는 방법은 무엇입니까?
온라인 시험 시스템의 시험 문제 관리를 지원하기 위해 MySQL 테이블 구조를 어떻게 설계해야 합니까?
온라인 시험 시스템에서는 일반적으로 시험 문제의 추가, 삭제, 수정, 조회를 포함한 시험 문제 관리가 필요합니다. 이러한 작업을 지원하려면 테스트 문제 데이터를 저장할 합리적인 MySQL 테이블 구조를 설계해야 합니다. 다음에서는 이 테이블 구조를 설계하는 방법을 소개하고 해당 코드 예제를 제공합니다.
먼저, 문제 ID, 제목, 옵션, 답변 등을 포함하여 시험 문제의 기본 정보를 저장하기 위해 "질문"이라는 테이블을 만들어야 합니다. 테이블의 구조는 다음과 같이 설계할 수 있습니다.
CREATE TABLE questions(
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 필드에는 테스트 질문에 대한 답변이 저장됩니다.
다음으로 시험지 ID, 이름, 설명 등을 포함한 시험지 정보를 저장하기 위해 "exams"라는 테이블을 만들 수 있습니다. 또한 이 테이블에 외래 키를 추가하여 문제 ID를 시험지와 연결할 수도 있습니다. 이렇게 하면 시험지에 포함된 문제를 쉽게 찾을 수 있습니다. 테이블의 구조는 다음과 같습니다.
CREATE TABLE 시험(
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를 설정하여 시험 테이블 및 질문 테이블과의 연결을 만듭니다.
위의 디자인을 통해 온라인 시험 시스템의 문제 관리 기능을 구현할 수 있습니다. 데이터를 삽입하여 시험문제 및 시험지를 추가할 수 있으며, 쿼리문을 통해 시험문제 및 시험지에 대한 정보를 얻을 수 있습니다. 일부 샘플 코드는 다음과 같습니다.
INSERT INTO 질문 (제목, 옵션1, 옵션2, 옵션3, 옵션4, 답변) VALUES ('질문 1', '옵션 A', '옵션 B', ' 옵션 C', '옵션 D', '답안 A');
질문 삽입 시험지에서:
질문 정보 쿼리:
시험지에서 질문 쿼리:
위의 샘플 코드를 통해 시험 문제 및 문제의 관리 및 쿼리 기능을 구현할 수 있습니다.
위 내용은 온라인 시험 시스템의 시험 문제 관리를 지원하기 위해 MySQL 테이블 구조를 설계하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!