IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Schéma Discussion :

Questionnaire simple


Sujet :

Schéma

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2010
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2010
    Messages : 12
    Points : 8
    Points
    8
    Par défaut Questionnaire simple
    Bonjour, voila je suis en train de realiser une petite application web qui me permettrai proposer un questionnaire selon une ou plusieurs catégories choisie(s), j'ai lu quelques tutos sur le site concernant la méthode merise et j'ai créé un MCD avant de commencer ma base de données.

    Pour vous donner un exemple concret :
    Un utilisateur choisis une ou plusieurs catégorie , selon ce qu'il a choisi, un questionnaire lui sera proposé, une fois terminé les réponses seront saisies et enregistrées dans un compte utilisateur qui sera fait par la suite grace à l'association "REPONSE".

    j'aimerai avoir votre avis sur le MCD surtout au niveau des cardinalités et des clés étrangères.
    Ou alors y a t il un moyen plus simple de réaliser cette base de données.

    Nom : Capture d’écran 2015-01-24 à 12.16.12.png
Affichages : 3145
Taille : 39,1 Ko

  2. #2
    Expert confirmé Avatar de Richard_35
    Homme Profil pro
    Inscrit en
    Juillet 2007
    Messages
    3 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 3 121
    Points : 4 596
    Points
    4 596
    Par défaut
    Bonjour Somesa,

    Oui, ça tient (partiellement) la route... après quelques modifications et précisions.

    Nom : Capture.JPG
Affichages : 2101
Taille : 42,4 Ko

    Il ne faut pas ajouter les clés étrangères en attribut des entités : c'est le MLD qui s'en charge.

    Donc, revenons aux règles de gestion précises. Pour l'instant :
    • 1 question appartient à 1 et 1 seule catégorie ;
    • 1 catégorie contient 0 ou plusieurs questions ;
    • 1 utilisateur peut répondre à 0 ou plusieurs questions ;
    • 1 question peut faire l'objet de 0 ou plusieurs réponses.


    Deux questions :
    • un utilisateur peut-il effectuer plusieurs réponses pour la même question ?
    • une réponse à une question est-elle libre (texte en saisie libre) ?
    Dis-nous et à bientôt,
    Richard.
    ----------------------------------------------------------------------------------------------
    En cas de résolution, et afin de faciliter la tâche des bénévoles, merci de cliquer sur .
    et permettent aux forumeurs de cibler leur recherche dans une discussion : n'hésitez pas à voter !

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2010
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2010
    Messages : 12
    Points : 8
    Points
    8
    Par défaut
    super merci l'article avec l'exemple du chef de projet m'a éclairé davantage.

    Pour les règles de gestions c'est exactement ca,
    et pour répondre aux questions :

    • Un utilisateur peut effectuer plusieurs réponses par question
    • Une réponse a une question peut être libre, ou prédéterminée (QCM... etc)



    PS: merci d'avoir déplacé mon sujet

  4. #4
    Expert confirmé Avatar de Richard_35
    Homme Profil pro
    Inscrit en
    Juillet 2007
    Messages
    3 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 3 121
    Points : 4 596
    Points
    4 596
    Par défaut
    Bonjour Somesa,

    Les règles de gestion sont donc les suivantes (pour l'instant, en attendant des précisions) :
    • 1 question appartient à 1 et 1 seule catégorie ;
    • 1 catégorie contient 0 ou plusieurs questions ;
    • 1 utilisateur peut répondre à 0 ou plusieurs questions ;
    • 1 question peut faire l'objet de 0 ou plusieurs réponses ;


    Citation Envoyé par Somesa
    Un utilisateur peut effectuer plusieurs réponses par question
    ==>
    • 1 utilisateur peut renseigner 0 ou plusieurs réponses pour une même question ;
    • 1 même question peut accueillir 0 ou plusieurs réponses d'un même utilisateur ;


    Citation Envoyé par Somesa
    Une réponse a une question peut être libre, ou prédéterminée (QCM... etc)
    ==> cela veut dire qu'il faut faire une liaison entre les questions et les réponses permises, quand c'est le cas, non ?
    Dis-nous et à bientôt,
    Richard.
    ----------------------------------------------------------------------------------------------
    En cas de résolution, et afin de faciliter la tâche des bénévoles, merci de cliquer sur .
    et permettent aux forumeurs de cibler leur recherche dans une discussion : n'hésitez pas à voter !

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2010
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2010
    Messages : 12
    Points : 8
    Points
    8
    Par défaut
    Citation Envoyé par Richard_35 Voir le message
    ==> cela veut dire qu'il faut faire une liaison entre les questions et les réponses permises, quand c'est le cas, non ?
    Oui, devrais je ajouter une table REPONSE reliée à QUESTION, qui concernerait uniquement les réponses aux QCM ?

    Une question peut avoir une ou plusieurs réponses pré-enregistrées
    Une réponse pré-enregistrée concerne une et une seule question

    et dans le MLD j'aurai quelque chose du genre :

    QUESTION(id, libelle)
    REPONSE(id, libelle, #id_question)

    Puis pour afficher les réponses possibles pour une question:

    SELECT *
    FROM reponses
    LEFT JOIN questions ON id_question = questions.id
    WHERE questions.id = :id_question

  6. #6
    Expert confirmé Avatar de Richard_35
    Homme Profil pro
    Inscrit en
    Juillet 2007
    Messages
    3 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 3 121
    Points : 4 596
    Points
    4 596
    Par défaut
    Bonjour Somesa,

    Citation Envoyé par Somesa
    Oui, devrais je ajouter une table REPONSE reliée à QUESTION, qui concernerait uniquement les réponses aux QCM ?
    ==> mets à jour ton MCD avant tout, nous parlerons des tables plus tard.


    Citation Envoyé par Somesa
    Une question peut avoir une ou plusieurs réponses pré-enregistrées
    ==> à mon avis, ce serait plutôt :
    • 1 question peut avoir 0 ou plusieurs réponses pré-enregistrées

    car il ya aura des questions avec réponse en saisie libre.


    Citation Envoyé par Somesa
    Une réponse pré-enregistrée concerne une et une seule question
    ==> à mon avis, ce serait plutôt :
    • 1 réponse pré-enregistrée peut concerner plusieurs questions

    car, il serait dommage, par exemple, de créer autant de réponses "oui" ou "non" que de questions auxquelles il faut répondre par "oui" ou par "non". Non ?


    Si tu es OK, les règles de gestion sont les suivantes :
    • 1 question appartient à 1 et 1 seule catégorie ;
    • 1 catégorie contient 0 ou plusieurs questions ;
    • 1 utilisateur peut répondre à 0 ou plusieurs questions ;
    • 1 question peut faire l'objet de 0 ou plusieurs réponses ;
    • 1 utilisateur peut renseigner 0 ou plusieurs réponses pour une même question ;
    • 1 même question peut accueillir 0 ou plusieurs réponses d'un même utilisateur ;
    • 1 question peut avoir 0 ou plusieurs réponses pré-enregistrées ;
    • 1 réponse pré-enregistrée peut concerner 0 ou plusieurs questions.


    Qu'en penses-tu ?

    Si OK, je te laisse concevoir le MCD.
    Dis-nous et à bientôt,
    Richard.
    ----------------------------------------------------------------------------------------------
    En cas de résolution, et afin de faciliter la tâche des bénévoles, merci de cliquer sur .
    et permettent aux forumeurs de cibler leur recherche dans une discussion : n'hésitez pas à voter !

  7. #7
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2010
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2010
    Messages : 12
    Points : 8
    Points
    8
    Par défaut
    C'est exactement cela, c'est vrai que ce serait dupliquer des réponses inutilement.
    (Décidément j'ai du mal avec les relations 0,n)

    voila mon nouveau MCD :

    Nom : Capture d’écran 2015-02-02 à 00.42.10.png
Affichages : 2138
Taille : 44,5 Ko

    j'ai une petite question qui est justement liée aux relations 0,n ----- 0,n :

    J'ai l'habitude de lier les tables qui ont une relation "1,n ----- 1,1" au niveau du MLD par une clé étrangère
    Comment faire pour une relation 1,n ----- 1,n ? ya t il une clé étrangere ? ou alors une nouvelle table intermédiaire comme j'ai fait avec réponse (en ajoutant l'id des deux tables respectives id_utilisateur et id_question dans cette nouvelle table)

    Je vous remercie pour votre aide précieuse

  8. #8
    Expert confirmé Avatar de Richard_35
    Homme Profil pro
    Inscrit en
    Juillet 2007
    Messages
    3 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 3 121
    Points : 4 596
    Points
    4 596
    Par défaut
    Bonjour Somesa,

    Ça paraît pas mal !... mais, il manque une cardinalité à laquelle je je te laisse répléchir :

    Nom : Capture.JPG
Affichages : 1998
Taille : 54,9 Ko

    Après tes réflexions, nous préciserons les choses concernant cette relation ternaire.


    Citation Envoyé par Somesa
    j'ai une petite question qui est justement liée aux relations 0,n ----- 0,n :

    J'ai l'habitude de lier les tables qui ont une relation "1,n ----- 1,1" au niveau du MLD par une clé étrangère
    Comment faire pour une relation 1,n ----- 1,n ? ya t il une clé étrangere ? ou alors une nouvelle table intermédiaire comme j'ai fait avec réponse (en ajoutant l'id des deux tables respectives id_utilisateur et id_question dans cette nouvelle table)
    ==> il y aura "une nouvelle table intermédiaire", appelée "table associative". Je t'invite à consulter cet excellent billet de CinePhil qui balaye tous les cas possibles de cardinalités entre deux entités.
    Dis-nous et à bientôt,
    Richard.
    ----------------------------------------------------------------------------------------------
    En cas de résolution, et afin de faciliter la tâche des bénévoles, merci de cliquer sur .
    et permettent aux forumeurs de cibler leur recherche dans une discussion : n'hésitez pas à voter !

  9. #9
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2010
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2010
    Messages : 12
    Points : 8
    Points
    8
    Par défaut
    En ce qui concerne la cardinalité de la table associative, je pense à 0,n car:
    si un utilisateur peut répondre a 0,n questions
    et si une question se voit répondre par 0,n utilisateurs
    =>il y aura au minimum 0 réponses, et au maximum n dans cette table associative.

    l'article est vraiment clair et c'est exactement ce que je recherchais. Vraiment merci

    Quelles sont ces précisions concernant cette relation ternaire ?

  10. #10
    Expert confirmé Avatar de Richard_35
    Homme Profil pro
    Inscrit en
    Juillet 2007
    Messages
    3 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 3 121
    Points : 4 596
    Points
    4 596
    Par défaut
    Bonjour Somesa,

    Citation Envoyé par Somesa
    En ce qui concerne la cardinalité de la table associative, je pense à 0,n
    ==> eh bien, non, cela devrait être 1,n. Une réponse est donnée pour un couple utilisateur/question et cette question peut avoir plusieurs réponses.


    Citation Envoyé par Somesa
    Quelles sont ces précisions concernant cette relation ternaire ?
    ==> en fait, c'est contenu dans la précédente réponse... il s'agit, en quelque sorte, du "piège des ternaire".

    1er MCD :
    Nom : Capture.JPG
Affichages : 2058
Taille : 53,0 Ko

    2ème MCD (traduction JMerise) :
    Nom : Capture1.JPG
Affichages : 2147
Taille : 58,4 Ko
    Mais, à la vue de ce MCD, 1 réponse peut se rapporter à n'importe quel couple utilisateur/question, puisque le triplé utilisateur/question/réponse est stocké "en un seul morceau"...

    Suggestion :
    Nom : Capture2.JPG
Affichages : 2005
Taille : 67,8 Ko
    De cette manière, une réponse ne correspond qu'à un couple utilisateur/question bien identifié !

    Qu'en penses-tu ?
    Dis-nous et à bientôt,
    Richard.
    ----------------------------------------------------------------------------------------------
    En cas de résolution, et afin de faciliter la tâche des bénévoles, merci de cliquer sur .
    et permettent aux forumeurs de cibler leur recherche dans une discussion : n'hésitez pas à voter !

  11. #11
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2010
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2010
    Messages : 12
    Points : 8
    Points
    8
    Par défaut
    Vraiment, je ne savais pas qu'on pouvait faire cela au niveau conceptuel...

    Si j'ai bien compris, les relations ternaires créent une table associative, et cette dernière permet de faire le lien entre toutes les infos.

    par exemple ici on aura dans cette nouvelle table :

    utilisateur 1 - question 1 - reponse 1
    utilisateur 1 - question 1 - reponse 2
    utilisateur 1 - question 2 - reponse 3
    utilisateur 2 - question 1 - reponse 1... etc

    mais ce sont les cardinalités qui délimitent ces relations.

    Le 3 eme shéma m'a fait comprendre que c'est bien le couple utilisateur/question qui est lié a une réponse, en m'inspirant de celui ci, j'ai décidé de refaire un modele sur MysqlWorkBench, j'ai dailleurs changé l'organisation des tables en divisant le code en 2 parties:

    Une partie qui concerne la partie administration ou il faudra ajouter des questions à la base de données selon des catégories. (QUESTION / CATEGORIE) --> engendrent un QUESTIONNAIRE
    Une qui affichera le questionnaire sur le site et récuperera des réponses en fonction du couple QUESTION/CATEGORIE.

    Je ne vois pour l'instant pas de contradiction en ce qui concerne les fonctionnalités finales de l'application, par contre est ce c'est la meilleure maniere de faire? je ne sais pas

    Nom : Capture d’écran 2015-02-06 à 21.08.19.png
Affichages : 2545
Taille : 54,0 Ko

    j'ai pour l'instant placé les réponses pré-enregistrées directement dans la table Question en tant qu'attribut pour me faciliter les requetes SQL de test, puis je lierai la table réponses par la suite à la table Question.

    qu'en pensez vous ?

  12. #12
    Expert confirmé Avatar de Richard_35
    Homme Profil pro
    Inscrit en
    Juillet 2007
    Messages
    3 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 3 121
    Points : 4 596
    Points
    4 596
    Par défaut
    Bonjour Somesa,

    Citation Envoyé par Somesa
    Vraiment, je ne savais pas qu'on pouvait faire cela au niveau conceptuel...
    ==> pour le 3ème MCD, c'est le seul moyen d'éviter le piège des ternaires : il faut un couple utilisateur/question valide qui pointe sur des réponses.


    Citation Envoyé par Somesa
    Si j'ai bien compris, les relations ternaires créent une table associative, et cette dernière permet de faire le lien entre toutes les infos.

    par exemple ici on aura dans cette nouvelle table :

    utilisateur 1 - question 1 - reponse 1
    utilisateur 1 - question 1 - reponse 2
    utilisateur 1 - question 2 - reponse 3
    utilisateur 2 - question 1 - reponse 1... etc

    mais ce sont les cardinalités qui délimitent ces relations.
    ==> pour le 2ème MCD, oui. Pas pour le 3ème.


    Je ne connais pas le formalisme MysqlWorkBench... mais, Categorie doit être lié à Question, pas à Questionnaire :
    Nom : Capture.JPG
Affichages : 1995
Taille : 67,4 Ko

    A propos, tu ajoutes une entité Questionnaire sans revenir aux règles de gestion !... reprenons donc les règles de gestion déjà validées :
    • 1 question appartient à 1 et 1 seule catégorie ;
    • 1 catégorie contient 0 ou plusieurs questions ;
    • 1 utilisateur peut répondre à 0 ou plusieurs questions ;
    • 1 question peut faire l'objet de 0 ou plusieurs réponses ;
    • 1 utilisateur peut renseigner 0 ou plusieurs réponses pour une même question ;
    • 1 même question peut accueillir 0 ou plusieurs réponses d'un même utilisateur ;
    • 1 question peut avoir 0 ou plusieurs réponses pré-enregistrées ;
    • 1 réponse pré-enregistrée peut concerner 0 ou plusieurs questions.

    Concernant Questionnaire :
    • un questionnaire peut-il concerner plusieurs catégories ?
    • si une catégorie est sélectionnée pour un questionnaire, toutes les questions de cette catégorie doivent-elles figurer dans ce questionnaire ?
    Dis-nous et à bientôt,
    Richard.
    ----------------------------------------------------------------------------------------------
    En cas de résolution, et afin de faciliter la tâche des bénévoles, merci de cliquer sur .
    et permettent aux forumeurs de cibler leur recherche dans une discussion : n'hésitez pas à voter !

Discussions similaires

  1. Jeu questionnaire simple
    Par mastorhaxor dans le forum VB.NET
    Réponses: 7
    Dernier message: 02/12/2010, 11h05
  2. Effet de transition simple entre 2 images
    Par ChrisFAPS dans le forum Flash
    Réponses: 2
    Dernier message: 18/04/2003, 12h41
  3. Bon je vais essayer d'être simple :
    Par fpouget dans le forum Langage SQL
    Réponses: 8
    Dernier message: 09/04/2003, 17h46
  4. Edition d'un simple fichier java
    Par mcrepin dans le forum Eclipse Java
    Réponses: 5
    Dernier message: 21/03/2003, 14h28
  5. recherche exemple simple pour corba en c++
    Par Pinggui dans le forum CORBA
    Réponses: 4
    Dernier message: 06/05/2002, 11h29

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo