Salut Hogyo,
En base de données, on distingue plusieurs cas dans les relations entre entités selon leur cardinalité.
D'un côté les ingrédients, de l'autre les gâteaux. La relation entre les deux, c'est la recette.
Faut-il des ingrédients pour avoir des gâteaux ? Oui. Il n'y a pas de gâteau qui soit composé d'aucun ingrédient.
Faut-il des gâteaux pour avoir des ingrédients ? Non. Ce n'est pas parce que le placard est plein et qu'on a un livre de recette qu'on a des gâteau dans le garde-manger.
Voici donc une première sorte cardinalité :
GATEAU obligatoire --- facultatif INGREDIENT
Avec un même ingrédient, peut-on faire plusieurs sortes de gâteaux ? Oui. Il me semble que les œufs, la farine et le sucre entrent dans la constitution de plusieurs gâteaux !
Un même gâteau peut-il être constitué de plusieurs sortes d'ingrédients ? Oui. Enfin, je crois.
En voici donc une seconde :
GATEAU plusieurs --- plusieurs INGREDIENT
Rassemblons les deux :
GATEAU (obligatoire, plusieurs) --- (facultatif, plusieurs) INGREDIENT
On note :
facultatif : 0
obligatoire : 1
un seul : 1
plusieurs : n
Le lien s'appelle RECETTE, et ses cardinalités sont donc (1,n) (0,n)
La notation GATEAU (0, n) --- (0, n) INGREDIENT est issu d'un modèle qu'on appelle conceptuel.
Mais ta base de données est physique.
Il faut donc transformer ton modèle conceptuel (MCD) en modèle physique (MPD).
Une des règles de transformation établie qu'il faut créer une table par entité et une table par relation de cardinalité (x,n)(x,n). Les autre relations sont représentées par les clef étrangères.
Les tables issues d'une relation n-n sont constituées de deux colonnes, l'une pour la clef primaire de la première table, l'autre pour la clef primaire de la seconde.
Exemple :
[fixed]
GATEAU
GAT_ID GAT_NOM
------ ------------
1 quatre-quart
2 crepe
INGREDIENT
ING_ID ING_NOM
------ ------------
1 oeuf
2 beurre
3 sucre
4 farine
5 levure
6 lait
7 fruits confits
RECETTE
GAT_ID ING_ID
------ ------
1 1
1 2
1 3
1 4
1 5
2 1
2 3
2 4
2 6
[/fixed]
Manque un truc, ici. C'est la quantité par exemple. Et bien dans ton MCD, la relation portait l'information. Donc dans le MPD, on ajoute une colonne dans la table !
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
Tu t'attaques à un domaine complet, pas forcément complexe. Je t'invite à te renseigner sur la "méthodologie MERISE".