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!