Creer une DB efficace

Signaler
Messages postés
1
Date d'inscription
mercredi 30 décembre 2009
Statut
Membre
Dernière intervention
12 janvier 2010
-
Messages postés
6063
Date d'inscription
dimanche 13 avril 2003
Statut
Modérateur
Dernière intervention
15 juillet 2011
-
Bonjour à tous.

Je crée des bases de données depuis quelques années maintenant, mais toujours des bases "relativement" simples, et en tous les cas "relativement" légères.

Aujourd'hui, je prévois de créer une base de données pour des sondages. Mon problème, c'est que cette base risque d'être énorme. Je voudrais donc vos conseils avisés.

Voici l'idée.

Sur une page PHP, le webmaster peut décider de créer un sondage, auquel les internautes pourront répondre.

Il ne s'agit pas là d'un sondage d'une seule question (ce serait trop simple), ni d'un sondage basique, mais bien d'un sondage multi-questions dont les réponses doivent être affichées de manière dynamique (par exemple, le webmaster devrait pouvoir savoir combien d'internautes ont répondu A à la question 1 et B à la question 2).

S'agissant d'un questionnaire très compliqué, j'ai pensé à cette solution:

Une table "contenu" avec pour attributs:
Id
Actif (sondage actif ou innactif)
Nom du sondage
(et ensuite, 30 fois les attributs suivants:)
Question
Réponse 1
Réponse 2
Réponse 3
Réponse 4
Réponse 5
Type de question (boutons radio, check box, textfield)

Ce qui nous fait une table GIGANTESQUE !!!! Que pensez-vous ? Créer une table à part "questions" qui retrouve la table "contenu" grace à l'id ?


Voici la seconde table: Resultats::
id
Numero du sondage
Infos persos (plusieurs attributs, genre "nom", "adresse", etc...)
Puis 30 fois l'attribut "question"


Une fois encore... c'est énorme !!! Mais comment diviser cela ????


Merci d'avance de votre aide précieuse !

1 réponse

Messages postés
6063
Date d'inscription
dimanche 13 avril 2003
Statut
Modérateur
Dernière intervention
15 juillet 2011
37
Salut,

Il faut pas faire comme ca?

Il est préférable de faire une table sondage, une table question, Une table personne, une table reponse

sondage
* id_sondage
* nom
* actif

personne
* id_personne
* nom
* prenom
* ....

question
* id_question
* fk_sondage
* titre
* type (multiple, choix_simple)

reponse
* id_reponse
* fk_question
* contenu
* est_solution

resultat
* id_question
* fk_reponse
* fk_personne

Sur cette base tu peux monter le sondage
le nombre de sondage peut être immense et pas limité à 30

Bon dev