Partage
  • Partager sur Facebook
  • Partager sur Twitter

BDD avec scores et dates

Sujet résolu
    9 octobre 2021 à 23:13:31

    Bonjour, 

    J'ai crée un questionnaire en ligne qui permet de calculer un score pour les animaux de compagnie (je suis véto). Je souhaiterai que les gens puissent enregistrer ces scores et surtout voir leur évolution dans le temps. Je pense donc créer une première BDD avec IDClient/Nom/Prenom/email pour qu'ils se créent un compte , et une deuxième avec IdAnimal/Nom/IdClient/Score/Date (plusieurs animaux peuvent avoir le même nom et un client peut avoir plusieurs animaux)/Score/Date.

    Déjà est ce que cela vous semble cohérent? 

    Ensuite, suis je obligée de prévoir des colonnes Score1/Date1/Score2/Date2/.../.../Score*/Date*? Sachant que je ne sais pas combien de mesures ils voudront faire ? a mon avis une dizaine suffirait mais je n'en suis pas sûre non plus...

    Merci de votre aide, je suis novice! 

    -
    Edité par Angua Von Uberwald 9 octobre 2021 à 23:13:49

    • Partager sur Facebook
    • Partager sur Twitter
      10 octobre 2021 à 2:03:50

      Même si tu es novice, tu confonds les termes.

      Pourquoi créer 2 BDD ? Je pense que tu parles des tables Compte et Animal.

      Les colonnes de la table Compte sont correctes je pense. En revanche, je suppose que par idClient dans la table Animal, tu fais référence à la clé étrangère qui fait référence à idClient de la table Client. Ainsi, tes cardinalités, c'est ce que tu indiques par "plusieurs animaux peuvent avoir le même nom et un client peut avoir plusieurs animaux" (avec une erreur d'étourderie sans doute), sont :

      1 animal est adopté par un seul client. Un client peut adopter au maximum plusieurs animaux. Ce qui est cohérent.

      Ce qui l'est beaucoup moins c'est tes colonnes score et date qui, nommées ainsi, et tu le montres dans ton interrogation, forment des listes de longueurs indéterminées. Et ce n'est pas normal. D'ailleurs, ça ne respecte pas la première forme normale (1NF pour first normal form), elle dit que le contenu de chaque colonne doit être atomique, c'est-à-dire, le contenu ne doit pas être une composition de n éléments (n > 1).

      Donc, ta table Animal contient les colonnes qui suivent : idAnimal (clé primaire), Nom (polysème, je crois, mieux vaut préciser avec le suffixe Animal) , idClient (libellé à changer pour facilité la lecture).

      Ça veut dire, maintenant, que tu dois trouver de la place pour les colonnes score et date. La liaison logique qui vient à l'esprit est le questionnaire, on note (score) un animal sur un questionnaire. Puisque tu as une liste de dates, j'en déduis qu'on peut faire plusieurs fois un questionnaire.

      Je te laisse mettre les colonnes nécessaire dans la table questionnaire. Je n'y mets que la clé primaire qui sera idQuestionnaire.

      On a une relation entre les tables Animal et Questionnaire. Les cardinalités sont :

      1 animal "subit" au maximum plusieurs questionnaires. Un questionnaire concerne un seul animal ou plusieurs animaux ??

      J'ai d'autres questions. Pour que tu y répondes, rien ne t'empêche de simuler une micro BDD pour voir ce qui te semble le plus cohérent.

      Un animal peut-il subir à nouveau un questionnaire ?

      Ou chaque questionnaire est-il unique et donc effectué une et une seule fois ?

      Je vois 4 cas à étudier :

      A = un questionnaire concerne un seul animal ; B = un animal ne subit qu'une et une seule fois le même questionnaire (et leurs opposés non A et non B)

      non A = un questionnaire peut concerner plusieurs animaux ; non B = un même animal peut subir plusieurs fois le même questionnaire.

      On a la table de vérité suivante :

      A   | B   || Cas possible
      NON | NON || ???
      NON | OUI || ???
      OUI | NON || ???
      OUI | OUI || ???

      Dans le doute, mieux vaut prendre ce qui permet le maximum. Ici, le cas : non A ET non B.

      On a donc le MCD suivant pour la relation Animal-Questionnaire :

      Table ANIMAL :
      id_animal clé primaire
      
      Table QUESTIONNAIRE :
      id_questionnaire clé primaire
      
      Table de relation SUBIR)
      (entre ANIMAL et QUESTIONNAIRE) :
      id_subir
      #animal clé étrangère d'ANIMAL
      #questionnaire clé étrangère de QUESTIONNAIRE
      date
      score




      • Partager sur Facebook
      • Partager sur Twitter
        4 novembre 2021 à 12:45:49

        Avec beaucoup de retard, un énorme merci pour ta réponse détaillée et précise! Tu m'a grandement aidée, je suis en train d'y arriver je crois ;)
        • Partager sur Facebook
        • Partager sur Twitter

        BDD avec scores et dates

        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
        × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
        • Editeur
        • Markdown