Probleme de cardinalite

Fermé
cobra13 - 23 juil. 2010 à 10:13
Breub62 Messages postés 2989 Date d'inscription lundi 7 juin 2010 Statut Membre Dernière intervention 17 avril 2014 - 23 juil. 2010 à 11:10
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

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
Breub62 Messages postés 2989 Date d'inscription lundi 7 juin 2010 Statut Membre Dernière intervention 17 avril 2014 369
23 juil. 2010 à 10:48
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...
0
Defouille Messages postés 388 Date d'inscription mercredi 13 janvier 2010 Statut Membre Dernière intervention 15 novembre 2011 54
23 juil. 2010 à 11:08
C'est exactement ce que Breub62 dit ^^
0
lys44 Messages postés 57 Date d'inscription mardi 25 mai 2010 Statut Membre Dernière intervention 21 mars 2011 5
23 juil. 2010 à 11:09
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
MrSlave Messages postés 2587 Date d'inscription lundi 28 avril 2008 Statut Membre Dernière intervention 26 août 2011 146
23 juil. 2010 à 10:31
Et quelle est ta question ? >.<
Quelles sont les cardinalités entre les tables ?

Tu travailles avec quoi ?
0
Defouille Messages postés 388 Date d'inscription mercredi 13 janvier 2010 Statut Membre Dernière intervention 15 novembre 2011 54
23 juil. 2010 à 10:33
Et qu'elle sont les structures (et champs) de tes tables ?
0
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
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
donc la cle primaire de la table relation sera (code_pierre,code_maladie)
Tu parles de cles etrangeres ? c'est à dire ?
0
Breub62 Messages postés 2989 Date d'inscription lundi 7 juin 2010 Statut Membre Dernière intervention 17 avril 2014 369
23 juil. 2010 à 11:10
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'
0
MrSlave Messages postés 2587 Date d'inscription lundi 28 avril 2008 Statut Membre Dernière intervention 26 août 2011 146
23 juil. 2010 à 11:03
0