< Access et les relations pere-fils | Forum des BTS

Access et les relations pere-fils

Esmeralda

New Member
salut,

question metaphysique (pour moi !!!!)
quand je passe du MCD/MLD à Access, je cherche toujours comment faire savoir à Access que la cardinatlité est 1.1 ou 1.n ou 0.n etc ....

dans le cas de liaison père-fils déjà, quand on fait un lien il y a deux cardinalités (une au départ de chaque table) et d'après ce que je vois, Access choisit tout seul.

si j'ai bien compris :
- quand on relie deux cles primaires (donc deux fois 1.1), Access met la cardinalité 1.1
- si j'ai comme cardinalité : 1.1 et 1.n, Access met 1 à plusieurs
- si j'ai 1.n et 1.n, Access met plusieurs à plusieurs.

donc je ne gère rien, c'est lui le grand décideur.
qu'en pensez-vous ?
 
Oui Access gère tout seul les différentes liaisons mais le mieux avant de créer tes tables c'est de faire ton MCD au brouillon pour voir combien de tables tu vas avoir et mettre ainsi les champs en commun à la fin des tables attribuées.. ça évitera de te planter!
En fait dès que tu as schématiser et que tu vois qu'il a une relation 1.1 c'est qu'il faut que tu crée 1 table intermédiaire.. :)
Comprendo?? :wink:
 
ouai, j'ai bien compris les MCD et MLD. y a pas de problème.

mais mon souci c'est la transposition sur Access que je ne comprends pas très bien.

Je crois que ce qui me gène, c'est qu'Access décide tout seul des cardinalités, alors que moi j'ai du y réfléchir UN PEU avant sur le MCD et MLD .....

tu situe mon probleme ?
 
En fait ce que vous voyez dans Access n'est pas le MCD de votre base de données!

bon prenons un exemple concret :
Nous avons un MCD comme suit :

Client ---- acheter ----produit

une entité client, une association acheter, une entité produit
à gauche une cardinalité 1,n et à droite une cardinalité 0,n

dans le MLD nous aurons 3 relations car toutes les cardinalités ont un maximum à n. Nous aurons donc dans ACCESS 3 tables, toutes reliées par des liaisons de type 1 n.
Ici ce que l'on peut reprocher à ACCESS est de ne pas afficher le 0 de la cardinalité du coté produit, mais celà n'est qu'un probleme d'affichage, car access prend en compte le fait que ce produit puisse ne pas être acheté.

autre exemple :

Client ---- acheter ----produit

une entité client, une association acheter, une entité produit
à gauche une cardinalité 1,n et à droite une cardinalité 1,1

dans le MLD nous aurons 2 relations car la cardinalité à droite a un maximum à 1. Dans ACCESS vous n'aurez donc que 2 tables alors que le MCD avait 2 entités et une association. donc dans access le 1N symbolise la liaison entre client et produit alors que dans le MCD la cardinalité représente le dégré de participation de l'entité à l'association, c'est à dire la liaison entre client et acheter. il est donc normal que ACCESS donne un résultat different du MCD j'espere vous avoir aidé ;)
 
Salut, et Merci à DUDY pour ton explication

mais quand tu dis : "mais celà n'est qu'un probleme d'affichage, car access prend en compte le fait que ce produit puisse ne pas être acheté. ",

cela veut dire que je ne peux PAS indiquer à Access que dans tel cas la cardinalité sera de O.n ou 1.n ?

c'est vraiment lui qui décide de tout, Tout Seul ?
 
Salut, et Merci à DUDY pour ton explication

mais quand tu dis : "mais celà n'est qu'un probleme d'affichage, car access prend en compte le fait que ce produit puisse ne pas être acheté. ",

cela veut dire que je ne peux PAS indiquer à Access que dans tel cas la cardinalité sera de O.n ou 1.n ?

c'est vraiment lui qui décide de tout, Tout Seul ?
 
en fait le 1n de ACCESS n'est pas une cardinalité, c'est juste un indicateur de correspondance. Access ne prend aucune décision, il ne fait que déduire 1n à partir des tables. une liaison entre une clé primaire d'une table et une clé etrangère dans une autre table ne peut donner un autre résultat, puisque une clé primaire ne peut avoir de doublon alors que la clé étrangère si.
 
Retour
Haut