# Gnral Dveloppement > ALM > Modlisation > Schma >  Passage du MCD au MLD

## isaac_2000

Bonjour,

J'espre que vous allez bien,

Dans cette discussion je cherche  comprendre SVP le passage du MCD au MLD, voici une partie d'un MCD que j'ai cr:



En modle logique je sais que *id_countryexecution* serait une cl trangre dans l'entit "project", mais je veux comprendre s'il vous plat, les cardinalits 1,1 et 0,N se traduisent o exactement, autrement dit, si on donne le MLD avec les deux tables et o *id_countryexecution* est une cl trangre dans "project", comment peut-on dduire les deux cardinalits ?

Question plus gnrale: Comment traduire les cardinalits du MCD en  MLD?

Merci de votre retour,

Bien cordialement

----------


## escartefigue

Bonjour,

Si je comprends bien la question, on cherche  dduire les cardinalits du MCD  partir des clefs trangres du modle tabulaire.
Dans le modle tabulaire les clefs trangres sont faciles  reprer : elle font l'objet d'une contrainte de type rfrence codes sous la forme suivante dans le DDL de cration de la table :

CONSTRAINT ma_colonne REFERENCES autre_table(autre_colonne) avec facultativement des actions ON DELETE ou ON UPDATE.

 partir de l, il faut d'abord vrifier si la table contenant ce type de colonnes est issue d'une entit ou d'une association du MCD.
En effet, quand on a une association dont une "patte" possde une cardinalit 0,1, il est possible de gnrer une table pour cette association afin d'viter que la colonne soit "nullable".

Si toutes les colonnes PK de la table concerne font l'objet dune contrainte de type rfrence, alors c'est une table issue d'une association (on parle alors de "table associative").

En ce cas les PK sont bien videmment "not null" - c'est obligatoire pour une PK - mais c'est bien une table associative issue d'une cardinalit 0,1
Si au contraire les colonnes PK de la table ne font pas l'objet de contrainte de type rfrence, alors c'est une table issue d'une entit du MCD.
En ce cas, si la colonne faisant l'objet d'une contrainte de type rfrence est "nullable", alors c'est qu'on avait une cardinalit 0,1 dans le MCD et si la contrainte de type rference porte sur une colonne "not null", alors c'est qu'on avait une cardinalit 1,1 dans le MCD

Voici un exemple de MCD avec des cardinalits 0,1 et 1,1



Si je dcide de ne pas gnrer de table associative pour la cardinalit 0,1, alors le script DDL est gnr ainsi (ici dclin pour SQL server)  :



```

```



Si au contraire je dcide de gnrer une table associative pour viter les colonnes "nullables", alors le script DDL devient :



```

```

----------

