[mySQL] structure de la base de données pour sondage multiples

structure de la base de données pour sondage multiples [mySQL] - SQL/NoSQL - Programmation

Marsh Posté le 20-02-2008 à 21:50:52    

Bonsoir,

 

J'aurais besoin d'un coup de pouce pour concevoir ma base de données.

 

J'aimerais concevoir une application qui permette de créer divers sondages. Le tout basique, mais avec un nombre paramétrable de choix et de types de choix.

 

Par exemple :

 

Sondage 1
Aimez-vous les fraises ?
o Oui
o Non

 

Sondage 2
Quand mangez-vous du chocolat ?
[] Le matin
[] Le midi
[] Le soir

 

Le problème que je me pose est le suivant : comme il n'y a pas un nombre prédéterminé de réponses, et que tantôt c'est des cases à cocher, tantôt des cercles (réponse unique), je ne peux pas créer de table prédéterminée à l'avance. Si ?
Alors il faudrait que je crée une table pour chaque sondage ? Cela me paraît beaucoup !

 

Il doit y avoir une astuce que je ne saisis pas. Si quelqu'un peut m'aiguiller ... :)


Message édité par Xocs le 20-02-2008 à 21:51:22
Reply

Marsh Posté le 20-02-2008 à 21:50:52   

Reply

Marsh Posté le 20-02-2008 à 23:26:18    

A priori il faut faire une table "question" et une table "reponse"
Et tu les met en relation avec une jointure.
 
La table reponse aura un champ "parent_question" qui aura pour valeur l'ID de la question ;)
 
 
EDIT: Pour ce qui est de "Radio" ou "Checkbox" ça ira tres bien dans la table "question" (genre un champ "choixmultiple" avec 1 ou 0...)


Message édité par ZePRiNCE le 20-02-2008 à 23:27:55

---------------
A VENDRE: Razer Chroma ARGB Controller / Boitier / Support Triple Screen / Ventirad / Carte USB3
Reply

Marsh Posté le 21-02-2008 à 14:43:41    

Je ne vois pas bien ce que tu veux dire.
En gros, si j'ai bien compris :
 
Table : Question
Champs : ID_question, enonce, choix_multiple
 
Table : Reponse
Champs : ID_reponse, ID_question, enonce
 
Table : Resultats
Champs : ID_resultats, ID_reponse, reponse
 
____________________________
 
Si on reprends l'exemple du dessus, on aurait donc :
 
Table : Question
0, "Aimez-vous les fraises", 0
1, "Quand mangez-vous du chocolat", 1
 
Table : Reponse
0, 0, "Oui"
1, 0, "Non"
2, 1, "Le matin"
3, 1, "Le midi"
4, 1, "Le soir"
 
Et, en supposant que des gens (2 personnes) aient voté :
 
Table : Résultats
0, 0, 1
1, 1, 0
2, 1, 2
3, 0, 0
4, 1, 2
5, 1, 2
 
En supposant que la première personne aie répondu non aux fraises, et matin et soir pour le chocolat, et que la seconde aie répondu oui pour les fraises, et midi et soir pour le chocolat.
 
C'est ce que tu voulais dire ?
 

Reply

Marsh Posté le 21-02-2008 à 16:58:57    

Xocs a écrit :

Table : Question
Champs : ID_question, enonce, choix_multiple
 
Table : Reponse
Champs : ID_reponse, ID_question, reponse
 
Table : Resultats
Champs : ID_resultats, ID_reponse, ID_user


 [:aloy]  
 
Voir si tu t'en fous de savoir qui a voté quoi, tu rajoutes juste un champ "compteur" dans ta table Reponse, sans faire de table Resultats.
 
Sinon pour le reste je crois que tu as compris ce que je voulais dire, sauf que les PRIMARY KEY ça commence à 1 et non 0 ;)


Message édité par ZePRiNCE le 21-02-2008 à 16:59:17

---------------
A VENDRE: Razer Chroma ARGB Controller / Boitier / Support Triple Screen / Ventirad / Carte USB3
Reply

Marsh Posté le 22-02-2008 à 01:45:37    

Ah d'accord je comprends mieux :)
 
Merci de ton aide !

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed