Probleme de cardinalite

cobra13 -  
Breub62 Messages postés 3452 Statut Membre -
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

cobra13
 
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 3452 Statut Membre 369
 
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 404 Statut Membre 54
 
C'est exactement ce que Breub62 dit ^^
0
lys44 Messages postés 59 Statut Membre 5
 
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 2657 Statut Membre 147
 
Et quelle est ta question ? >.<
Quelles sont les cardinalités entre les tables ?

Tu travailles avec quoi ?
0
Defouille Messages postés 404 Statut Membre 54
 
Et qu'elle sont les structures (et champs) de tes tables ?
0
cobra13
 
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
cobra13
 
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 3452 Statut Membre 369
 
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 2657 Statut Membre 147
 
0