# Gnral Dveloppement > ALM > Modlisation > Schma > [MCD] Demande aide pour la mise en place des cardinalits

## hbx360

Bonjour,

J'ai du mal  savoir comment mettre mes cardinalits, voici les 3 tables qui me pose problme (j'ai plus de 3 tables dans ma base de donnes que je n'ai pas mis ici) :



Pour Model et CaracteristiqueValeur j'ai mis comme a :



Mais au final a me cre une table de jointure qui me complique plus qu'autre chose car difficile  remplir pour caractristique valeur il y a beaucoup de donner  rentr rien que pour un modle.
Je me demandais s'il ne serait pas mieux soit de faire comme a :



Ou bien encore plus simple faire comme ceci (Modle est li  marque mais je l'ai pas mis sur l'image) :



Concernant les cardinalits CaracteristiqueValeur et Caracteristique je sais pas ce qui faut mettre c'est le brouillard ; si je met :



> une valeur peut avoir une ou plusieurs caractristiques


c'est juste  mon avis car sa veut dire que la valeur 5 par exemple peut-tre utilis pour le nombre de portes et pour la puissance fiscal et 



> une caractristique peut avoir zro ou plusieurs valeurs


je pense aussi que c'est juste car le nombre de portes pour un modle peut trs bien tre 4 et pour un autre modle 5.

Mais je me dis aussi :



> un nombre de portes peut avoir que une et une seul valeur


effectivement si un modle  5 portes il ne peut pas en avoir 3 mais sa veut dire aussi que peut importe le modle le nombre de porte restera a 5 et ne pourra pas avoir 3 ou 4 porte par exemple donc c'est l ou je suis perdu donc je sais pas si je dois mettre les cardinalits comme ceci :

 

ou bien



ou 



Merci de votre aide.

----------


## escartefigue

Bonjour hbx360

La premire chose est de planter un peu le dcor, il semble que vous essayiez de modliser un modle dans un contexte automobile, c'est bien a ?

Ensuite,  quand je lis ceci 




> c'est juste  mon avis car sa veut dire que la valeur 5 par exemple peut-tre utilise pour le nombre de portes et pour la puissance fiscal [...]


je vois que vous confondez les valeurs et les cardinalits.

Les cardinalits sont la traduction dans le MCD des rgles de gestion entre les types d'entit (entre les objets de gestion) elles caractrisent donc les associations.
Les valeurs concernent les attributs, elle peuvent tre bornes par des rgles (on parle alors de domaine de valeurs) mais c'est tout autre chose.

Une automobile peut avoir le plus souvent 2  5 portes, voire 6 pour certaines limousines. 
On sait que quand il y en a 2 c'est une  gauche, une  droite, 4 c'est deux de chaque cot, 5 c'est la mme chose + un hayon. 
Dans une automobile, une porte n'a ( ma connaissance en tout cas) pas de caractristiques particulires (pas de numro de srie, pas de couleur particulire...). 
Ce n'est donc pas un objet de gestion, on ne cre pas de type d'entit concernant les portes. 
On positionne simplement un attribut nb_porte dans le type d'entit "vhicule" qu'on valorisera pour chaque ligne dans la table en fonction du type de vhicule.

 l'inverse, une automobile possde aussi une boite de vitesse, mais qui elle, au contraire des portes, possde des caractristiques qui lui sont propres : automatique ou manuelle, avec un certain nombre de rapports, une certaine dmultiplication, autant d'attributs qu'on souhaite mmoriser. 
Ce faisant on cre un type d'entit boite_vitesse et on cre une association entre vhicule et boite_vitesse pour les associer.
Et c'est l qu'on positionne les cardinalits, le fait qu'un vhicule soit associ  zro (vhicule en cours de montage et pas encore quip) et une seule boite de vitesse et qu'une boite de vitesse quipe zro (pas encore monte dans un vhicule) ou un vhicule.

----------


## hbx360

Oui c'est bien a.

Je ne souhaite pas aller aussi loin, j'ai modifier mon 1er message, est-ce que si je fait comme a : 



Est-ce que a peut le faire, je pense que pour moi qui suis dbutant sa sera plus simple.
Est-ce que se serai plus judicieux de mettre le type d'nergie dans le Model ?

----------


## escartefigue

Le type d'nergie ne prendra que peu de valeurs, si on n'a pas besoin d'y associer un libell ou d'autres caractristiques, alors on peut en effet rapatrier un simple attribut dans le type d'entit "modele".
En ce cas, on y associera une contrainte CHECK pour contrle le domaine de valeurs.

Par contre, la boite de vitesse dans un attribut, a ne conviendra pas la plupart du temps. Comme je le disais plus haut, la boite possde certaines caractristiques qu'on a le plus souvent besoin de connaitre quand on parle d'un vhicule. Il faut donc crer un type d'entit spcifique pour la boite. Il en va de mme pour le moteur.

----------


## hbx360

D'accord merci pour ton aide.

----------


## hbx360

Et si je fais comme a :



Est-ce que sa peut aller ?

Mais est-ce que les cardinalits sont bonnes ? Je n'arrive pas  savoir.

Et est-ce que quelqu'un peut relire mon premier message et me dire quelle est la meilleurs solution.

Merci d'avance.

----------


## escartefigue

Voici un MCD que j'avais fait pour un sujet similaire.
Parmi les marques, on retrouvera Peugeot, Ford, BMW...
Parmi les modles, on retrouvera 208, Focus, Serie 3
Parmi les variantes, on retrouvera 208 GT, e-208, Focus Ambiente, Focus ST-line, 318-i, 320-i...
Les exemplaires, ce sont chaque vhicule (avec un numro de chassis, une date de fabrication, un coloris...)

Concernant les moteurs et les boites de vitesse (BV que je n'ai pas modlises ici), le principe est le mme :
certains constructeurs automobile proposent des modles dont le moteur et la boite de vitesse sont fournis par d'autres constructeurs.
Ainsi par exemple, de nombreux constructeurs japonais quipent leurs modles diesel de moteurs et de boites franaises (ex : la Suzuki Jimny quipe d'un bloc et d'une boite Renault, la Vitara equipe d'un bloc et d'une boite Peugeot, etc.)
Voir cet article sur ce sujet.
C'est la raison pour laquelle, dans mon MCD, le modle est associ  une marque (association PP_proposer) et le moteur peut tre associ  une autre marque (association FA_fabriquer). Il faut faire de mme avec les boites de vitesse pour complter le MCD.

----------


## hbx360

Merci pour ton exemple mais comme je te l'ai dit je veux faire simple le but n'est pas de faire quelque chose tendant vers le ralisme.
J'apprcie ton aide mais tu ne rponds pas vraiment  mes questionnement et mes attentes .

Je suis dbutant et beaucoup de chose m'chappe encore. Ton MCD est trop complexe et peu exploitable pour moi pour que je puisse en tir de quelconques informations qui me permettrait par rapport  ce que je souhaite faire de raliser mon MCD. Je veux juste qu'on me dise comment on peut mettre les cardinalits avec les 3 tables que j'avais donns Model, Caracterisitque_valeur et Caracteristique.

----------


## escartefigue

Le but est d'apprendre  raliser un MCD, c'est bien a ?

----------


## hbx360

Oui tout  fait mais avec les contraintes cit plus haut.

Je ne cherche pas  faire compliqu, le but est vraiment de faire simple, l ou je me perd c'est avec mes 3 tables et mes cardinalits que j'ai du mal  placer, du fait que l'on peut retrouver par exemple la valeur 5 de la table Caracteristique_valeur (qui reprsente le nombre de portes) peut se retrouver sur plusieurs modle de voiture donc faut-il mettre 1,N ou bien se dire que la valeur 5 est unique par modle et donc mettre 1,1.

Comme je l'ai dit j'ai du mal avec les cardinalits c'est pour a que j'ai demander de l'aide pour m'aider  trouver les bonnes cardinalits pour les 3 tables qui sont Modle, Caracteristique_valeur et Caracteristique.

Je reste sur 3 tables parce que aprs sa fait beaucoup et dj 3 tables pour les peupler c'est long.

----------


## escartefigue

Comme mentionn plus haut, le nombre de portes est ici une valeur, pas une cardinalit, on positionne donc un attribut "nombre de portes" dans le type d'entit "modle", voil tout.

Je vous recommande la lecture de l'ouvrage de J.M. Divin "parlez vous Merise", on peut le tlcharger gratuitement sur le site DVP et c'est un excellent ouvrage pour l'apprentissage de la mthode.

----------


## hbx360

Merci pour ta rponse, j'ai achet le livre Modlisation Conceptuelle de Donnes de Patrick Bergougnoux.

----------

