설문 조사 기능을 구현하기 위해 유연한 MySQL 테이블 구조를 설계하는 방법은 무엇입니까?
1. 소개
설문조사는 현대 사회의 데이터 수집 및 연구에 널리 사용됩니다. 다양한 설문조사 요구에 유연하게 적응하려면 합리적인 MySQL 테이블 구조를 설계해야 합니다. 이 기사에서는 설문지 기능을 구현하기 위해 유연한 MySQL 테이블 구조를 설계하는 방법을 소개하고 구체적인 코드 예제를 제공합니다.
2. 요구 분석
3. 테이블 디자인
위 요구 사항에 따라 다음 테이블을 디자인해야 합니다.
4. 구체적인 구현
다음은 MySQL 문을 사용하여 위의 표를 확인하고 몇 가지 샘플 코드를 제공하세요.
--CREATE TABLE 설문조사(
ID INT PRIMARY KEY AUTO_INCREMENT,
제목 VARCHAR(255) NOT NULL,
create_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP
);
ID INT PRIMARY KEY AUTO_INCRE 멘트,
Survey_id INT NOT NULL,
콘텐츠 TEXT NOT NULL,
유형 TINYINT NOT NULL, -- 1은 단일 선택, 2는 다중 선택을 의미
FOREIGN KEY (survey_id) REFERENCES Surveys(id)
)
--CREATE TABLE 옵션(
Question_id INT NOT NULL,
content TEXT NOT NULL,
FOREIGN KEY (question_id) REFERENCES questions(id)
);
-- 답변 테이블 만들기
CREATE TABLE 답변 (
조사_ID INT NOT NULL,
질문_ID INT NOT NULL,
option_id INT NOT NULL,
user_id INT NOT NULL,
create_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
FOREIGN K EY(조사_ID) REFERENCES 설문조사(id),
FOREIGN KEY (question_id) REFERENCES 질문(id),
FOREIGN KEY (option_id) REFERENCES 옵션(id)
);
설문 조사의 구체적인 구현을 위해 PHP 또는 기타 프로그래밍 언어를 사용하여 페이지 표시 및 데이터 처리를 처리할 수 있습니다. 다음은 간단한 샘플 코드입니다.
설문조사 페이지를 만들고 양식을 통해 사용자의 답변을 제출하세요.
<input type="hidden" name="survey_id" value="1"> <?php // 获取问题列表 $questions = // 从数据库中查询问题列表的代码 foreach ($questions as $question) { echo '<p>' . $question['content'] . '</p>'; // 获取选项列表 $options = // 从数据库中查询选项列表的代码 foreach ($options as $option) { echo '<input type="checkbox" name="question_' . $question['id'] . '[]" value="' . $option['id'] . '"> ' . $option['content'] . '<br>'; } } ?> <input type="submit" value="提交">
양식 제출을 처리하기 위한 PHP 파일(submit.php)을 만듭니다.
// 获取用户提交的答案 $surveyId = $_POST['survey_id']; $answers = $_POST; // 获取所有POST参数 foreach ($answers as $questionId => $optionIds) { if (strpos($questionId, 'question_') !== false) { $questionId = str_replace('question_', '', $questionId); // 保存答案到数据库 foreach ($optionIds as $optionId) { // 将答案插入到answers表中的代码 } } }
MySQL 테이블 구조를 합리적으로 설계함으로써 설문 조사 기능을 유연하게 구현하고 후속 통계 및 분석을 용이하게 할 수 있습니다. 특정 구현 프로세스에서는 데이터의 무결성과 정확성을 보장하기 위해 데이터 테이블의 상관 관계 및 논리적 처리에 주의를 기울여야 합니다.
위 내용은 설문 조사 기능을 구현하기 위해 유연한 MySQL 테이블 구조를 설계하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!