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


Sujet :

Schéma

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2013
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2013
    Messages : 9
    Points : 3
    Points
    3
    Par défaut Questionnaire
    Bonjour,

    Je souhaite faire un MCD d'un questionnaire voici les contraintes:

    -->Les questionnaires (+2) doivent être rempli par les utilisateurs.
    -->Chaque questionnaire se compose de plusieurs questions.
    -->Les question se composent soit de sous question soit de réponses sous forme de texte.
    -->Les sous question se composent de choix multiple.
    -->Les réponse doivent pouvoir être analysées (par ex combien d'utilisateur à cocher la réponse X).

    J'espère avoir donné assez d'information. Le shéma ci-joint est le MCD que j'ai tenté de réaliser. Comme je suis débutant je souhaite avoir un regard extérieur. Merci d'avance.
    Images attachées Images attachées  

  2. #2
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 799
    Points : 34 031
    Points
    34 031
    Billets dans le blog
    14
    Par défaut
    Rapidement, il y a des boucles dans ton MCD.

    Par exemple, Un questionnaire répondu peut satisfaire une question qui entre dans la composition d'un questionnaire qui n'est pas celui associé à questionnaire_répondu.

    Ce genre de problème a déjà été abordé plusieurs fois dans le forum Schéma.
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  3. #3
    Expert éminent sénior
    Avatar de fsmrel
    Homme Profil pro
    Spécialiste en bases de données
    Inscrit en
    Septembre 2006
    Messages
    8 001
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Spécialiste en bases de données
    Secteur : Conseil

    Informations forums :
    Inscription : Septembre 2006
    Messages : 8 001
    Points : 30 905
    Points
    30 905
    Billets dans le blog
    16
    Par défaut Contraintes de chemin
    Bonjour,


    Citation Envoyé par redbox Voir le message
    Chaque questionnaire se compose de plusieurs questions.
    -->Les question se composent soit de sous question soit de réponses sous forme de texte.
    Un questionnaire est donc composé de questions à réponse textuelle et de questions à choix multiple :




    Si un élève répond à une question de type texte, on connaît par l’association ELEVE_REPONSE la question dont il s’agit :



    Et l’on sait quel est le questionnaire correspondant, car une occurrence de QUESTION_A_REPONSE_TEXTE fait référence au questionnaire qui va bien.

    Même chose pour une question dont le choix est multiple : un élève répond à une sous-question qui détermine une question qui détermine un questionnaire :



    Ainsi, d’un point de vue sémantique ou artistique votre type d’entité QUESTIONNAIRE-REPONDU fait bien dans le décor, mais fiche la patouille évoquée par CinePhil : elle peut disparaître puisqu’on connaît le questionnaire par le biais des types d'entité QUESTION_A_REPONSE_TEXTE d’une part et SOUS_QUESTION + QUESTION_A_CHOIX_MULTIPLE d’autre part (transitivité).

    En réunissant les morceaux :




    On peut faire évoluer ce MCD pour prendre en compte le fait que les types d'entités QUESTION_A_REPONSE_TEXTE et QUESTION_A_CHOIX_MULTIPLE ne sont jamais que des propriétés multivaluées de QUESTIONNAIRE (on dit que ces types d’entités sont faibles (weak entity-types) par rapport à QUESTIONNAIRE, elles n’ont pas d’existence indépendante, elles ne vivent que par QUESTIONNAIRE). Ainsi, on identifie QUESTION_A_REPONSE_TEXTE et QUESTION_A_CHOIX_MULTIPLE relativement à QUESTIONNAIRE (avec PowerAMC, les cardinalités 1,1 sont mises entre parenthèses). Même chose, SOUS_QUESTION est une propriété multivaluée de QUESTION_A_CHOIX_MULTIPLE :



    MLD correspondant (avec MySQL Workbench) :



    Pour une utilisation de MySQL Workbench (gratuit), voyez ici.
    (a) Faites simple, mais pas plus simple ! (A. Einstein)
    (b) Certes, E=mc², mais si on discute un peu, on peut l’avoir pour beaucoup moins cher... (G. Lacroix, « Les Euphorismes de Grégoire »)
    => La relativité n'existerait donc que relativement aux relativistes (Jean Eisenstaedt, « Einstein et la relativité générale »)

    __________________________________
    Bases de données relationnelles et normalisation : de la première à la sixième forme normale
    Modéliser les données avec MySQL Workbench
    Je ne réponds pas aux questions techniques par MP. Les forums sont là pour ça.

  4. #4
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2013
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2013
    Messages : 9
    Points : 3
    Points
    3
    Par défaut merci
    Merci pour la réponse vraiment bien détaillée, très sympa . Je vais regarder ça dans le détail.

  5. #5
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2013
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2013
    Messages : 9
    Points : 3
    Points
    3
    Par défaut Quelques modifications
    Voilà, je reviens avec quelques modifications.
    Je n'avais pas précisé (je ne l'avais pas vu) je peux avoir les configurations suivantes:
    Questionnaire-->Question-->ReponseTexte (1 seule réponse texte possible)
    Questionnaire-->Question-->SousQuestion-->ReponseTexte (card idem supra)
    Questionnaire-->Question-->ReponseChoix (sélection de plusieurs choix possible)
    Questionnaire-->Question-->SousQuestion-->ReponseChoix (card idem supra)
    Les MCDMLD sont ils corrects?


    Quand j'avais plusieurs clé primaire et que l'une des clés devait toujours être sélectionné et les autre clé était soit vrai soit faux, j'ai ajouté un clé primaire unique. Est ce que c'est juste? (3ème forme normale)

    Une autre question concernant les clés sur le MLD, je ne comprend pas pourquoi il y a par exemple la clé questionnaireID, sur la table EleveChoix?
    Images attachées Images attachées   

  6. #6
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2013
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2013
    Messages : 9
    Points : 3
    Points
    3
    Par défaut cadinalité o/n
    Je suis embêté avec les cadinalité 0/n et 0/1. J'utilise access et pour une requête permettant de voir les champs questionnaire/question/sous-question, c'est un échec (les champs sont vide). Puisque mes questions et mes sous questions peuvent être nuls selon le mld. Je pensais que j'étais en troisième forme normale mais apparemment ce n'est pas le k.

  7. #7
    Expert éminent sénior
    Avatar de fsmrel
    Homme Profil pro
    Spécialiste en bases de données
    Inscrit en
    Septembre 2006
    Messages
    8 001
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Spécialiste en bases de données
    Secteur : Conseil

    Informations forums :
    Inscription : Septembre 2006
    Messages : 8 001
    Points : 30 905
    Points
    30 905
    Billets dans le blog
    16
    Par défaut
    Bonsoir redbox,


    Votre MCD souffre toujours du type d’anomalie qu’avait relevée CinePhil, caractéristique de l’emprunt de deux chemins qui ne mènent pas toujours à Rome :

    Supposons que l’élève Raoul fournisse la réponse 2500 (entité-type ReponseTexte) et supposons que cette réponse fasse référence à la question 314 (par le canal de l’association Compléter connectant ReponseTexte et Question). Rien n’empêche que la réponse 2500 fasse référence à la sous-question 4012 (entité-type SousQuestionTexte) faisant elle-même référence à la question 17 (entité-type Question)...


    Citation Envoyé par redbox Voir le message
    Quand j'avais plusieurs clés primaires
    Que voulez-vous dire ?


    Citation Envoyé par redbox Voir le message
    et que l'une des clés devait toujours être sélectionnée et les autres clés étaient soit vrai soit faux
    Je ne suis pas sûr que nous ayons la même définition du concept de clé primaire...

    Ma définition est celle-ci : la clé primaire d’une table T est une clé retenue comme telle parmi plusieurs clés candidates de cette table. La définition de la clé candidate est la suivante :

    C’est un sous-ensemble K de colonnes d’une table T, astreint à vérifier les deux règles suivantes :
    Unicité : Deux lignes de T ne peuvent avoir simultanément la même valeur de K ;

    Minimalité : Il n’existe pas K’ strictement inclus dans K tel que K’ vérifie aussi la règle d’unicité.

    Mais peut-être que lorsque vous parlez de plusieurs clés primaires, s’agit-il en fait d’une clé primaire composée de plusieurs colonnes ?


    Citation Envoyé par redbox Voir le message
    j'ai ajouté une clé primaire unique. Est ce que c'est juste? (3ème forme normale)
    Vous pouvez toujours choisir une clé parmi l'ensemble des clés candidates d'une table pour en être Miss clé primaire, mais la 3e forme normale n’a à voir qu’avec les clés candidates.


    Citation Envoyé par redbox Voir le message
    Je suis embêté avec les cardinalités 0/n et 0/1.
    Je ne vois pas de 0,1 dans votre MCD, mais seulement des 1,1.


    Citation Envoyé par redbox Voir le message
    mes questions et mes sous questions peuvent être nuls selon le mld.
    Votre MLD est parfaitement muet à ce sujet. Prenons le cas de votre table ReponseTexte et faisons l’hypothèse que les colonnes sk-ID-Question et sk-ID-SousQuestion entrent dans la composition des clés étrangères faisant référence aux tables Question et SousQuestionTexte. Pour reprendre les valeurs que j’ai utilisées plus haut, voici l’interprétation de votre MLD à leur sujet dans le cas de la table ReponseTexte :

    La réponse 2500 fait référence à la question 314 (table Question) et elle fait référence à la sous-question 4012 (table SousQuestionTexte) faisant elle-même référence à la question 17 (table Question)...

    En fait, si je comprends bien, vous voulez avec une seule table ReponseTexte faire référence soit à la table Question, soit à la table SousQuestionTexte, ce qui vous force à jouer avec NULL qui vous attire dans un piège : attention, ce bonhomme est dangereux...

    Afin de ne pas tomber dans les rets du bonhomme, il faut procéder à une scissiparité de la table ReponseTexte, pour obtenir deux tables, l’une dévolue aux questions et l’autre aux sous-questions, comme ici (j’ai évité l’identification relative, on verra ça plus tard) :



    Selon cette représentation, les élèves fournissent des réponses à des questions d’une part (table QRT_ELEVE_REPONSE) et à des sous-questions d’autre part (table SQRT_ELEVE_REPONSE).

    Toutes choses égales par ailleurs, cette scissiparité vaut dans le cas des choix. Au final, la table ELEVE est en relation avec 4 tables de réponses.


    Citation Envoyé par redbox Voir le message
    je ne comprend pas pourquoi il y a par exemple la clé QuestionnaireId, sur la table EleveChoix?
    QuestionnaireId n’est pas une clé mais le nom d’une colonne participant à la clé.
    Cette remarque faite, la présence de la colonne QuestionnaireId est une conséquence de l’identification relative dont j’ai traité, en considérant qu’une question est à un questionnaire ce qu’est une ligne de facture à une facture : il y a là un mécanisme d’héritage dans l’identification, c’est un sujet qu’on pourra reprendre plus tard, une fois vos modèles d’équerre : traitons déjà de ce qui est urgent...


    Notez que dans mon précédent message, la clé de la table EleveChoix est le quadruplet {QuestionnaireId, QuestionCmId, SqNumero, EleveId}, or le triplet {QuestionnaireId, QuestionCmId, EleveId} garantit l'unicité et la minimalité : l’attribut SqNumero doit donc être évacué de la clé (attention, vous serez confronté à cela à votre tour...) :



    Le losange rougeâtre accompagnant SqNumero symbolise seulement le fait que {SqNumero} est clé étrangère (par rapport à la table SOUS_QUESTION).
    (a) Faites simple, mais pas plus simple ! (A. Einstein)
    (b) Certes, E=mc², mais si on discute un peu, on peut l’avoir pour beaucoup moins cher... (G. Lacroix, « Les Euphorismes de Grégoire »)
    => La relativité n'existerait donc que relativement aux relativistes (Jean Eisenstaedt, « Einstein et la relativité générale »)

    __________________________________
    Bases de données relationnelles et normalisation : de la première à la sixième forme normale
    Modéliser les données avec MySQL Workbench
    Je ne réponds pas aux questions techniques par MP. Les forums sont là pour ça.

  8. #8
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2013
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2013
    Messages : 9
    Points : 3
    Points
    3
    Par défaut alala
    Merci encore....c'est un peu déprimant, ça me paraissait tout simple mais en faite c'est vraiment pas évident.
    deux chemins qui ne mènent pas toujours à Rome
    Effectivement, j'ai fait une tentative en supprimant tous les doublons. Au final mes requêtes fonctionnent, mais je dois tricher en ajoutant des ligne null dans certain champ, donc pas top.
    Mais peut-être que lorsque vous parlez de plusieurs clés primaires, s’agit-il en fait d’une clé primaire composée de plusieurs colonnes ?
    Exact, je n'ai pas employé le bon vocabulaire sorry.
    mais la 3e forme normale n’a à voir qu’avec les clés candidates.
    J'ai dans mon cahier de cours une définition de la 3FN qui dit ceci:
    Une table est en troisième forme normale lorsque tous ses attributs dépendent pleinement et uniquement de la clé primaire.
    Je suis un peu embrouillé...j'avais constaté que certains attributs correspondaient seulement en partie à la clé composée, alors j'ai ajouter une clé primaire unique avec un N°ID auto incrémenté afin que la 3FN soit respectée.
    Je ne vois pas de 0,1 dans votre MCD, mais seulement des 1,1.
    Je suis d'accord c'est écrit petit. Mais, par exemple, à l'entité question il y a plusieurs relations dont la cardinalité est à 0. Un exemple:
    A une "question" se joint zéro ou plusieurs "sous question", autrement dit une "question" peut ne pas être composée de "sous question". Or dans Access ce type de cardinalité est automatiquement passé à 1/n.

    il faut procéder à une scissiparité
    Je ne connaissais pas cette astuce. ça semble drôlement efficace. Je vais essayer. Je posterai le MCD/MLD sitôt fait. En tous cas merci pour toutes ces informations ça m'est d'une grande aide.

  9. #9
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2013
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2013
    Messages : 9
    Points : 3
    Points
    3
    Par défaut clés primaire et étrangère
    Dans mon shémas pk=> clé primaire et sk=>clé étrangère.

    Je comprend bien que dans la table "QT_Reponse" les clé étrangère provenant des tables "QT-Question" et "Eleve" deviennent clés primaire (mon shéma =votre shéma pour cette partie).

    Par contre dans votre shéma je ne comprend pas la scissiparité avec les sous-questions...pourquoi la clé primaire la table "question" se retrouve dans la table "reponse". Pour ma part j'ai appris (peut être mal compris) que les clés étrangères proviennent des relations direct des table avoisinantes avec une relation 1/1-->1/n, le côté 1/1 recevant la clé étrangère...

    Je joint mon MLD actuel (page2). J'ai ajouté la partie "liste de choix"
    Images attachées Images attachées   

  10. #10
    Expert éminent sénior
    Avatar de fsmrel
    Homme Profil pro
    Spécialiste en bases de données
    Inscrit en
    Septembre 2006
    Messages
    8 001
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Spécialiste en bases de données
    Secteur : Conseil

    Informations forums :
    Inscription : Septembre 2006
    Messages : 8 001
    Points : 30 905
    Points
    30 905
    Billets dans le blog
    16
    Par défaut
    Bonsoir redbox,


    Citation Envoyé par redbox Voir le message
    A une "question" se joint zéro ou plusieurs "sous question", autrement dit une "question" peut ne pas être composée de "sous question". Or dans Access ce type de cardinalité est automatiquement passé à 1/n.
    ACCESS ne fait pas de différence entre 0,N et 1,N : en réalité il méconnaît 1,N, sinon il générerait de lui-même le code interdisant 0,N. Je dirais même que la norme SQL elle-même ne permet pas de garantir 1,N en une seule instruction. Ça viendra peut-être un jour, mais pour le moment, seule la théorie relationnelle permet de le faire, grâce à l’affectation multiple (voir par exemple ici).

    Cela dit, 0,N n’est pas forcément peccamineux, par exemple un élève ne répond pas forcément à une question, autrement dit dans votre MCD, les cardinalités portées par les pattes connectant l’entité-type ELEVE et les associations COMPOSER et CHOISIR doivent effectivement être porteuses d’une cardinalité 0,N et non pas 1,N. De la même façon, une question ou une sous-question peut ne pas avoir de réponse de la part des élèves. En revanche, un questionnaire sans question serait évidemment une aberration et dans ce cas-là, 1,N s’impose.


    Citation Envoyé par redbox Voir le message
    J'ai dans mon cahier de cours une définition de la 3FN qui dit ceci:
    Une table est en troisième forme normale lorsque tous ses attributs dépendent pleinement et uniquement de la clé primaire.
    Je suis un peu embrouillé...j'avais constaté que certains attributs correspondaient seulement en partie à la clé composée, alors j'ai ajouté une clé primaire unique avec un N°ID auto incrémenté afin que la 3FN soit respectée.
    Dans la définition qui vous a été donnée, « pleinement » veut probablement dire « de l’ensemble des attributs de la clé et pas que d’un sous-ensemble de ces attributs », ce qui est caractéristique de la 2FN, l’adverbe « uniquement » étant là pour le passage de la 2FN à la 3FN. Peu importe, votre professeur est coupable de vous avoir fourni une définition floue et incomplète, ça n’est pas la seule clé primaire qui peut être suspectée de viol, mais bien chaque clé candidate. Si donc une clé primaire « composée » fait que la FNx est violée, ravaler cette clé au rang de clé alternative et créer de toutes pièces une clé primaire singleton est un expédient qui ne résout strictement rien.


    Citation Envoyé par redbox Voir le message
    Pour ma part j'ai appris (peut être mal compris) que les clés étrangères proviennent des relations direct des table avoisinantes avec une relation 1/1-->1/n, le côté 1/1 recevant la clé étrangère...
    D’accord pour la cardinalité 1,1, mais limiter de l’autre côté au cas 1,N est réducteur : ça peut aussi être 0,1 ou 0,N, comme dans l’exemple du règlement des factures :

    Si dans l’entreprise la règle est que tout règlement de facture doit être effectué en une fois :
    [FACTURE]----0,1----(Régler)----1,1----[REGLEMENT]
    Alors au niveau MLD, la table REGLEMENT est porteuse d’une clé étrangère faisant référence à la clé primaire de la table FACTURE. Même principe si la règle change et qu’une facture puisse être réglée en plusieurs fois :
    [FACTURE]----0,N----(Régler)----1,1----[REGLEMENT]

    Citation Envoyé par redbox Voir le message
    Dans mon schéma pk=> clé primaire et sk=>clé étrangère.
    Soit. Mais quelle notation utilisez-vous quand une clé étrangère est en même temps clé primaire ?

    Pour reprendre le cas de l’entreprise pour laquelle la règle est que tout règlement de facture est effectué en une fois (à noter que le montant du règlement est alors celui de la facture) :

    Notation à la PowerAMC :



    Ou, pour reprendre la règle selon laquelle tout règlement de facture peut être effectué en plusieurs fois :



    Dans les deux cas, l’attribut NumeroFacture participe à la clé primaire de la table REGLEMENT ainsi qu’à la clé étrangère faisant référence à la clé primaire de la table FACTURE.


    Vous vous étonnez que, dans mon MLD, l’attribut QuestionSqId (appartenant à la clé de la table QUESTION_A_SOUS_QUESTIONS) intègre la clé primaire de la table SQRT_ELEVE_REPONSE : comme je vous l’ai déjà expliqué avec les tables QUESTION_A_REPONSE_TEXTE et QUESTION_A_CHOIX_MULTIPLE, au niveau conceptuel, sémantique, SOUS_QUESTION_A_REPONSE est une entité-type dite faible (weak entity-type) qui n’a aucune existence indépendante : elle ne vit que par l’entité-type QUESTION_A_SOUS_QUESTIONS, elle n’en est qu’une propriété multivaluée. Par le biais de l’identification relative, SOUS_QUESTION_A_REPONSE hérite de l’identifiant {QuestionSqId} de QUESTION_A_SOUS_QUESTIONS. Ensuite, toujours au niveau conceptuel, comme SQRT_ELEVE_REPONSE est sémantiquement une association entre ELEVE et SOUS_QUESTION_A_REPONSE, elle hérite de l’identifiant de ces deux entités-types, et voilà comment, par héritages successifs, au stade MLD SQRT_ELEVE_REPONSE est dotée de l’attribut QuestionSqId. Du strict point de vue du MLD, on pourrait s’en dispenser, mais il est des situations dans lesquelles c’est utile et évite des triggers délicats à programmer au stade SQL, voyez par exemple ici.

    Pour mémoire, dans le cas de l’identification relative, la clé de la table SOUS_QUESTION_A_REPONSE est composée de la paire {QuestionSqId, SousQuestionRepId} ; supposons maintenant que l’attribut QuestionSqId vaille 1, alors l’attribut SousQuestionRepId prendra les valeurs 1, 2, 3, ... m, même chose quand l’attribut QuestionSqId vaut 2 : l’attribut SousQuestionRepId prendra les valeurs 1, 2, 3, ... n, etc., c'est-à-dire qu’on recommence la numérotation à 1 pour l'attribut SousQuestionRepId (même principe pour l’attribut NoOrdre dans l’exemple des règlements des factures évoqué ci-dessus).



    Considérons maintenant cette partie de votre MCD :




    Vous avez une magnifique association ternaire, mais par définition elle dit ceci :
    — Par le canal de l’association Lister, chaque question à choix fait référence à au moins une sous-question à choix et à un choix ;

    — Chaque sous-question à choix fait référence à au moins une question à choix et à un choix ;

    — Chaque choix fait référence à au moins une question à choix et à une sous-question à choix.

    Vous remplaceriez les 1,N par des 0,N que ça ne changerait rien à l’affaire : Chaque question à choix participant effectivement à l’association Lister fait référence à au moins une sous-question à choix et à un choix, etc.

    Pour vous tirer d’affaire, une bonne scissiparité appliquée à Lister serait la bienvenue, c'est-à-dire de la ternaire faire deux binaires. Quant à votre MLD, il ne reflète pas votre MCD, il est même fort bizarre. Que veut-il exprimer ? (Ça serait bien que vous fournissiez des exemples).
    (a) Faites simple, mais pas plus simple ! (A. Einstein)
    (b) Certes, E=mc², mais si on discute un peu, on peut l’avoir pour beaucoup moins cher... (G. Lacroix, « Les Euphorismes de Grégoire »)
    => La relativité n'existerait donc que relativement aux relativistes (Jean Eisenstaedt, « Einstein et la relativité générale »)

    __________________________________
    Bases de données relationnelles et normalisation : de la première à la sixième forme normale
    Modéliser les données avec MySQL Workbench
    Je ne réponds pas aux questions techniques par MP. Les forums sont là pour ça.

  11. #11
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2013
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2013
    Messages : 9
    Points : 3
    Points
    3
    Par défaut exemple
    Voici des exemples typique dudit formulaire :
    Nom Prenom (élève)
    Acquis (questionnaire)
    -Indiquez en cochant la case correspondante dans les domaines de compétences suivants le niveau obtenu: (question)
    -Math (sous question)
    -niveau1 (choix)
    -niveau2
    -niveau3
    -niveau4
    -Anglais
    -niveau1
    -niveau2
    -niveau3
    -niveau4
    -Indiquez en cochant la case correspondante la classe avec laquelle l'élève suit ses cours: (question)
    -1ère année (choix)
    -2ème année
    -3ème année
    -L'élève est il souvent absent: (question)
    -oui (choix)
    -non
    -Si oui, expliquez pourquoi dans la zone de texte ci dessous: (question ou sous question???)

  12. #12
    Expert éminent sénior
    Avatar de fsmrel
    Homme Profil pro
    Spécialiste en bases de données
    Inscrit en
    Septembre 2006
    Messages
    8 001
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Spécialiste en bases de données
    Secteur : Conseil

    Informations forums :
    Inscription : Septembre 2006
    Messages : 8 001
    Points : 30 905
    Points
    30 905
    Billets dans le blog
    16
    Par défaut
    Bonsoir redbox,


    Quiproquo rigolo : je croyais que les réponses étaient celles d’élèves à évaluer, mais au vu de votre exemple ce sont en fait les professeurs qui répondent aux questions concernant le niveau des élèves : quoi qu’il en soit, cela ne change pas grand-chose à la modélisation, je supprime les colonnes QuestionChoixCorrect, SousQuestionChoixCorrect...

    Cela dit, ma question portait sur votre table ListeChoix, c’est elle qui me paraît fort bizarre, outre son impact sur la signification des liens qu’elle entretient avec les tables QC_Question et SQC_SousQuestion. Il faudrait donc que vous illustriez très précisément cette partie par l’exemple, sous forme tabulaire. Incidemment, je relève que l’attribut LibelleChoix des tables QC_Reponse et SQC_Reponse peuvent prendre des valeurs sans rapport avec le choix, par exemple « Vive Developpez.com ! », « On ne lâche rien »...


    Citation Envoyé par redbox Voir le message
    Si oui, expliquez pourquoi dans la zone de texte ci dessous: (question ou sous question???)
    A mon sens, puisqu’il s’agit d’ajouter un commentaire portant sur un choix, il devrait suffire d’ajouter un attribut Commentaire pour vos tables QC_Reponse et SQC_Reponse.


    Pour ma part, je verrais bien les choses ainsi, par exemple pour les questions à choix :



    Sous forme tabulaire (clés soulignées) :

    CHOIX
        ChoixId    ChoixLibelle
        -------    ------------
              1    oui
              2    non
              3    Niveau 1
              4    Niveau 2
              5    Niveau 3 
    
    ELEVE
        EleveId    EleveNom    ElevePrenom
        -------    --------    -----------
              1    Volfoni     Raoul
    
    QUESTIONNAIRE
        QuestionnaireId    QuestionnaireLibelle
        ---------------    --------------------
                      1    Acquis
    
    QC_QUESTION
        QC_QuestionId    QC_QuestionLibelle                QuestionnaireId 
        -------------    ------------------                ---------------
                  314    L'élève est il souvent absent ?                 1
    
    QC_CHOIX
        QC_QuestionId    ChoixId
        -------------    -------
                  314          1
                  314          2
    
    QC_REPONSE
        QC_QuestionId    ChoixId    EleveId    QC_ChoixCommentaire
        -------------    -------    -------    -------------------
                  314          1          1    Souvent hospitalisé chez Dugoineau
    
    Comme je l’ai déjà signalé, vous observerez que l’attribut ChoixId ne fait pas partie de la clé de la table QC_REPONSE, sinon on pourrait avoir plusieurs choix cochés pour une question donnée.
    (a) Faites simple, mais pas plus simple ! (A. Einstein)
    (b) Certes, E=mc², mais si on discute un peu, on peut l’avoir pour beaucoup moins cher... (G. Lacroix, « Les Euphorismes de Grégoire »)
    => La relativité n'existerait donc que relativement aux relativistes (Jean Eisenstaedt, « Einstein et la relativité générale »)

    __________________________________
    Bases de données relationnelles et normalisation : de la première à la sixième forme normale
    Modéliser les données avec MySQL Workbench
    Je ne réponds pas aux questions techniques par MP. Les forums sont là pour ça.

Discussions similaires

  1. Calculer et afficher le résultat d'un questionnaire
    Par lipao17 dans le forum Général JavaScript
    Réponses: 9
    Dernier message: 22/02/2020, 20h03
  2. Réponses: 9
    Dernier message: 03/09/2005, 20h51
  3. Questionnaire en XML
    Par samipate dans le forum XML/XSL et SOAP
    Réponses: 1
    Dernier message: 19/07/2005, 15h38
  4. Questionnaire à réaliser avec XSL et XML
    Par olive.m dans le forum XSL/XSLT/XPATH
    Réponses: 4
    Dernier message: 19/11/2003, 16h37

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