Page 1 sur 1

Création d'une base de données pour un questionnaire.

Posté : 22 déc. 2015, 21:11
par Patitgaston
Bonjour tout le monde.

Débutant en php, j'ai en charge la création d'un questionnaire comportant 20 questions pour lesquelles 11 choix de réponses sont proposés (de 0 à 10).

N'étant pas encore assez familier avec Mysql, je me prends un peu le chou depuis quelques heures à savoir combien de tables et de champs créer pour ce questionnaire.

J'ai bien évidemment en tête qu'il me faut créer une table "Utilisateurs", "Réponses", "Questions".

Ma 1ère question : ai-je oublié des tables essentielles ?
Ma 2ème question : quels champs dois-je attribuer à ces différentes tables ?

Je tiens à préciser que j'ai déjà inclus mes questions dans mon html de cette manière :

Code : Tout sélectionner

<div class="step row" > <h3 style="text-align:center;margin-bottom:45px;"> Please score each question on a scale of 0-10:<br> 0 = Not at all / Never<br> 10 = Yes absolutely / Always</h3> <div class="col-md-10 col-md-offset-1"> <ul class="data-list-2" > <h4>Question 1</h4> <li> <div class="styled-select"> <select class="form-control required" name="answer1"> <option value="Select" selected>Please select</option> <option value="0">0</option> <option value="1">1</option> <option value="2">2</option> <option value="3">3</option> <option value="4">4</option> <option value="5">5</option> <option value="6">6</option> <option value="7">7</option> <option value="8">8</option> <option value="9">9</option> <option value="10">10</option> </select> </div> </li> <hr> <h4>Question 2</h4> <li> <div class="styled-select"> <select class="form-control required" name="answer2"> <option value="" selected>Please select</option> <option value="0">0</option> <option value="1">1</option> <option value="2">2</option> <option value="3">3</option> <option value="4">4</option> <option value="5">5</option> <option value="6">6</option> <option value="7">7</option> <option value="8">8</option> <option value="9">9</option> <option value="10">10</option> </select> </div> </li> <hr> <h4>Question 3</h4> <li> <div class="styled-select"> <select class="form-control required" name="answer3"> <option value="" selected>Please select</option> <option value="0">0</option> <option value="1">1</option> <option value="2">2</option> <option value="3">3</option> <option value="4">4</option> <option value="5">5</option> <option value="6">6</option> <option value="7">7</option> <option value="8">8</option> <option value="9">9</option> <option value="10">10</option> </select> </div> </li>
Puis-je garder ma structure telle quelle ou est-il plutôt conseillé de mettre les question dans la base de données ?

J'ai trouvé cet exemple en farfouillant un peu :

Image

Je suis conscient que je pose beaucoup de questions en 1 seul poste, mais j'avoue que je sèche complètement #-o

D'avance un grand merci!

Re: Création d'une base de données pour un questionnaire.

Posté : 23 déc. 2015, 01:53
par Ascla
Bonjour,
Le plus propre (selon moi) serait de stocker les questions dans la base de données. Cependant, cette méthode impliquerai une modification dans ce que tu as rédigé jusqu'à maintenant.
Ensuite, il va falloir savoir ce qu'il est important de stocker. Souhaites-tu avoir des renseignements sur les personnes qui répondent ou juste stocker les réponses ?
Dans le cas où tu ne souhaites stocker qu'un minimum, voici un type de base de données possible :

Image

Image

Dans le premier cas, tu ne pourras avoir qu'un aperçu des notes pour chaque question.
Dans le deuxième, tu auras plus de renseignement sur les réponses. En effet, tu pourras retrouver toutes les réponses qu'à mis un utilisateur. (Plus utilisés pour faire des stats)

J'espère avoir répondu à tes interrogations.

Belle soirée.

Re: Création d'une base de données pour un questionnaire.

Posté : 23 déc. 2015, 12:10
par Patitgaston
Bonjour Ascla et un grand merci pour ta réponse!

Je suis bien évidement prêt à modifier ma structure et à insérer mes questions dans la bdd. Le tout est de savoir comment faire ça proprement... (tu peux m'appeler noobie :oops: )

Mon projet est le suivant : Je dois donc créer ce questionnaire que j'enverrai à des participants (que j'ajouterai moi même en admin) et qui recevront un mdp unique de connexion (couplé à leur email).

Une fois leurs questionnaires remplis, j'aurai les réponses attribuées automatiquement à chacun d'entre eux dans ma bdd et pourrai donc faire mes stats.

Je pense donc que ta 2ème solution est la plus adaptée à ce que je recherche et je t'en remercie encore une fois.

Le fait d'intégrer mes questions à la bdd changerait donc la structure de la base elle-même et des tables ?

Merci!!

Re: Création d'une base de données pour un questionnaire.

Posté : 23 déc. 2015, 12:31
par Spols
Je pense que si ce projet n'est a utilisé qu'une fois, peut importe que les questions soient en base ou non, ce n'est que pour rendre le script plus souple à une future utilisation que cela a une importance.
A moins que le but soit formatif, et donc c'est super de vouloir apprendre.

Mais si le script ne doit servir que pour ce formulaire ci, je ne ferai qu'une table avec la structure suivantes
id (unique), mail, pwd, rep1, rep2, ..., rep20
les questions restes en dur dans ta page et une requète INSERT ajoute toutes les réponses à l'utilisateur correspondant

Dans le cadre d'un script plus souple, réutilisable ou à vocation formative.
Il te faudrait une table utilisateur
id (unique) mail, pwd, autre info qui pourrait te sembler utile
une table question
id(unique), question, type de réponse (textarea, select, ...), options (liste des options en cas de select, radios, ...)
Une table réponse
id (unique) question_id, user_id, réponse
Donc chaque utilisateur aura 20 lignes dans cette table, mais c'est le plus souple pour traitement future de toute sorte.

Re: Création d'une base de données pour un questionnaire.

Posté : 23 déc. 2015, 12:38
par Patitgaston
Merci cher Spols d'être intervenu et d'avoir soulevé ce point important que j'aurais du mentionner plus tôt.

Il s'agit en effet d'un questionnaire qui devrait être utilisé plusieurs fois à l'avenir. Le 1er jet sera forcément un test, mais si les résultats sont satisfaisants, on continuera à l'utiliser.

Je vais donc suivre ta 2ème suggestion.

Du coup, à toi ressemblerait cette table d'après vous ?

Si je pouvais vous payer un verre les gars, franchement je le ferais sans hésiter! Merci pour votre patience =D>

Re: Création d'une base de données pour un questionnaire.

Posté : 23 déc. 2015, 14:32
par Spols
Dans le cadre d'un script plus souple, réutilisable ou à vocation formative.
Il te faudrait une table utilisateur
id (unique) mail, pwd, autre info qui pourrait te sembler utile
une table question
id(unique), question, type de réponse (textarea, select, ...), options (liste des options en cas de select, radios, ...)
Une table réponse
id (unique) question_id, user_id, réponse
Donc chaque utilisateur aura 20 lignes dans cette table, mais c'est le plus souple pour traitement future de toute sorte.

Re: Création d'une base de données pour un questionnaire.

Posté : 24 déc. 2015, 00:05
par Ascla
Donc ça donnerait :

Image

Question ( idQuestion, Texte, etc )
Reponses ( idUtilisateur, idQuestion, Note, Date )
Utilisateur ( idUtilisateur, mail, etc )

Après, libre à toi de faire comme tu souhaites. Tout va dépendre des informations que tu vas devoir stocker.

Re: Création d'une base de données pour un questionnaire.

Posté : 24 déc. 2015, 11:57
par Patitgaston
Merci à tous pour vos réponses!

Je vais suivre tous vos conseils qui, j'en suis sur, sont excellents.

Très bonnes fêtes à tous!