Probleme de cardinalite

Bonjour,

voila j'ai un petit soucis, je vais essaye d'être clair !! lol
j'ai 2 tables, la première MALADIE et la seconde PIERRE.
- Une maladie peut correspondre à plusieurs pierres
- une pierre correspond a plusieurs maladie
- une pierre peut guérir plusieurs maladies !
Que dois je faire pour quand j'interroge les tables il me sorte pour une pierre toutes les maladies qu'elle peut guérir ? Et vice et versa pour une maladie, toutes les pierres qui peuvent la guérir ?

Merci pour votre aide

6 réponses

  • Votes
  • Date
  • Date décroissante
  1. Pour l'instant, je travaille avec un crayon et un papier ! lol
    Sans plaisanterie, je suis au tout début de mon projet, et pour moi meurise est tres loin !

    table PIERRE
    code_pierre
    Nom

    table MALADIE
    code_maladie
    Nom

    je voulais savoir comment modéliser les 2 tables entres elles car sans relation entre elles je me retrouve avec une cardinalite 1,n de chaque cote.

    Comme je l'ai dit auparavant
    - Une maladie peut correspondre à plusieurs pierres
    - une pierre correspond a plusieurs maladie
    - une pierre peut guérir plusieurs maladies !

    J'aurais d'autres tables ensuite qui suivront le même schéma
    comme par exemple la table SIGNE (code_signe, Nom)
    - Un signe peut correspondre à plusieurs pierres
    - une pierre correspond a plusieurs signes
    1. Si tu as 1,N de chaque côté, cela se traduit par la création d'une nouvelle table dans laquelle tu n'auras que les champs code_pierre et code_maladie en clés primaires et étrangères...

      Ainsi dans cette table c'est le couple pierre-maladie qui constitue une clé unique...
    2. C'est exactement ce que Breub62 dit ^^
  2. En terme de MLD (Modèle Logique de Données) ta relation avec les cardinalités 1,n - 1,n donnera ça :

    PIERRE(code_pierre, nom)
    Clé primaire : code_pierre

    MALADIE(code_maladie, nom)
    Clé primaire : code_maladie

    ETRE_EN_RELATION(code_pierre, code_maladie)
    Clé primaire : code_pierre, code_maladie
    Clés étrangères : code_pierre EN PROVENANCE DE PIERRE(code_pierre)
    code_maladie EN PROVENANCE DE MALADIE(code_maladie)

    Les clés étrangères sont des clés primaires dans d'autres tables. Ici, par exemple, code_pierre est la clé primaire de PIERRE, et sera une clé étrangère de ETRE_EN_RELATION.

    Grâce à des requêtes SQL utilisant IN/NOT IN ou EXISTS (dans les conditions WHERE/AND/OR) tu pourras savoir quelle pierre correspond à quelles maladies et quels signes.
    1. Et quelle est ta question ? >.<
      Quelles sont les cardinalités entre les tables ?

      Tu travailles avec quoi ?
      1. Et qu'elle sont les structures (et champs) de tes tables ?
    2. En fait la table PIERRE est la table centrale.
      Au final, ce que je voudrais c'est que en interrogeant une pierre cela me donne tous les renseignements lui correspondant !

      la pierre X correspond aux signes X, Y, Z ..., elle guérit la maladie X,Y,Z
      1. donc la cle primaire de la table relation sera (code_pierre,code_maladie)
        Tu parles de cles etrangeres ? c'est à dire ?
        1. Une clé étrangère veut simplement dire que le code_pierre que tu trouve dans ta nouvelle table fait référence à la clé primaire de la table pierre.

          Donc pour répondre à ta question tu auras 3 tables, avec 2 jointures à faire pour tes requêtes select. Pour connaitre les maladie que guérit un pierre donnée, il te suffit, par exemple, de sélectionner toutes les lignes de la nouvelle table où code_pierre='X'