Comment concevoir une structure de table MySQL flexible pour implémenter la fonction d'enquête par questionnaire ?
1. Introduction
Les enquêtes par questionnaire sont largement utilisées dans la collecte de données et la recherche dans la société moderne. Afin de nous adapter de manière flexible aux différents besoins d'enquête par questionnaire, nous devons concevoir une structure de table MySQL raisonnable. Cet article explique comment concevoir une structure de table MySQL flexible pour implémenter la fonction de questionnaire et fournit des exemples de code spécifiques.
2. Analyse des besoins
3. Conception des tableaux
Selon les exigences ci-dessus, nous devons concevoir les tableaux suivants :
4. Implémentation spécifique
Ce qui suit utilisera les instructions MySQL pour créer le tableau ci-dessus et fournissez un exemple de code.
--Enquêtes CREATE TABLE (
id INT PRIMARY KEY AUTO_INCREMENT,
title VARCHAR(255) NOT NULL,
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP
);
id INT PRIMARY KEY AUTO_INCREMENT ,
Survey_id INT NOT NULL,
content TEXT NOT NULL,
tapez TINYINT NOT NULL, -- 1 signifie sélection unique, 2 signifie sélection multiple
FOREIGN KEY (survey_id) REFERENCES Surveys(id)
--CREATE TABLE options (
question_id INT NOT NULL,
content TEXT NOT NULL,
FOREIGN KEY (question_id) REFERENCES questions(id)
);
-- Créer un tableau de réponses
CREATE TABLE réponses (
Survey_id INT NOT NULL,
question_id INT NOT NULL,
option_id INT NOT NULL,
user_id INT NOT NULL,
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
FOREIGN K EY (survey_id) RÉFÉRENCES Surveys(id),
FOREIGN KEY (question_id) RÉFÉRENCES questions(id),
FOREIGN KEY (option_id) RÉFÉRENCES options(id)
);
Pour la mise en œuvre spécifique de l'enquête par questionnaire, nous pouvons utiliser PHP ou un autre langage de programmation pour gérer l'affichage des pages et le traitement des données. Voici un exemple de code simple :
Créez une page d'enquête et soumettez les réponses de l'utilisateur via un formulaire.
<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="提交">
Créez un fichier PHP (submit.php) pour gérer la soumission du formulaire.
// 获取用户提交的答案 $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表中的代码 } } }
En concevant rationnellement la structure de la table MySQL, nous pouvons implémenter de manière flexible la fonction d'enquête par questionnaire et faciliter les statistiques et les analyses ultérieures. Au cours du processus de mise en œuvre spécifique, une attention particulière doit être accordée à la corrélation et au traitement logique des tableaux de données afin de garantir l'intégrité et l'exactitude des données.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!