Bonjour,
je dois réaliser des sondages et je m'interroge sur la meilleur structure à donner à mes tables, afin de pouvoir traiter les réponses de manière optimale, en utilisant le moins de requêtes possible.
Je pense faire un table Question avec plusieurs champs:
- ID_Question
- Question_texte (libellé de la question)
- Question_type (Radio, box...)
Une table réponse comme ceci:
- ID_Reponse
- ID_Question
- Reponse (libellé de chaque réponse proposée)
Pour ma table votes, les contraintes sont: connaitre le résultat de chaque votant, et extraire des résultats sous la forme de pourcentages. Ma table ressemblerait à ca:
- ID_votant
- Q1 (Réponse à la Q1)
- Q2 (Réponse à la Q2)
- ...
- Q10
En procédant ainsi, pour chaque personne qui rempli le questionnaire, une seule requête permet d'enregistrer les réponses à toutes les questions. Par contre pour traiter les réponses, ca va nécessiter beaucoup de requêtes, une requête pour chaque valeur à chaque question! Du genre:
....
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 'select count(Q1) as q1_rep_1 From votes where Q1=1' 'select count(Q1) as q1_rep_2 From votes where Q1=2' 'select count(Q1) as q1_rep_3 From votes where Q1=3' 'select count(Q2) as q2_rep_4 From votes where Q1=4' 'select count(Q2) as q2_rep_5 From votes where Q1=5' 'select count(Q2) as q2_rep_6 From votes where Q1=6'
du coup je me demande si il y a pas un moyen d'optimiser ca, soit par des requêtes SQL "élaborées", mais je pense surtout en organisant ses tables différement. J'ai retourné la question dans ma tête sans arriver à une réponse qui me satisfasse, j'en appelle donc à vos lumières!
Partager