Association non porteuse de données ça veut dire quoi?

Fermé
ld91 Messages postés 10 Date d'inscription mardi 23 avril 2013 Statut Membre Dernière intervention 28 mars 2016 - 5 déc. 2015 à 12:14
heliconius Messages postés 539 Date d'inscription mardi 1 juillet 2008 Statut Membre Dernière intervention 23 juin 2023 - 15 déc. 2015 à 16:51
Bonjour,
J'ai un soucis .. Je comprends pas à quoi sert les associations non porteuses de données et comment les manipuler..
Si quelqu'un peut m'aider à comprendre
--

1 réponse

heliconius Messages postés 539 Date d'inscription mardi 1 juillet 2008 Statut Membre Dernière intervention 23 juin 2023 139
15 déc. 2015 à 16:51
Bonjour,

Je ne sais pas si c'est exactement ça car je ne connais pas le contexte de ta question mais je suppose que...

On va prendre un exemple : Des clients achètent des produits
CLIENTS--0,n---(Acheter)---0,n--PRODUITS

0,n s'appellent les cardinalités (minimales et maximales)
0,n côté clients veut dire : il se peut qu'un client n'achète pas (0) ou qu'il achète plusieurs fois (n)
0,n côté produits veut dire : il se peut qu'un produit ne soit pas acheté (0) ou qu'il soit acheté plusieurs fois (n)

Les deux cardinalités maximales sont à n donc il y a création de la table Acheter (la relation). Chaque table (CLIENTS et PRODUITS) va fournir son identifiant à la table de relation et les deux identifiants ensemble vont former l'identifiant de la relation
(NB: les identifiants sont soulignés)

Tables:
Clients(idcli, nom, prenom)
Produits(idprod, libellé, prix)
Acheter(idcli, idprod)

La table Acheter ne contient pour l'instant aucune autre information que les identifiants des deux autres tables. Elle n'est porteuse d'aucune autre information.

Mais... le client Martin va acheter 3 paires de chaussettes.

Le nombre de paire de chaussettes ne peut être enregistré dans un champ de la table Clients car un champ ne doit contenir qu'une valeur et une seule et Martin peut en acheter une fois 3 paires et la fois suivante une seule paire.

Le nombre de paire de chaussettes ne peut être enregistré dans un champ de la table Produits pour la même raison. En effet, un client peut en acheter 3 paires et un autre client cinq.

Le nombre de paire de chaussettes sera enregistré dans la table Acheter car le nombre de paire constitue une des propriétés de l'achat. Et tes tables deviendront :
Clients(idcli, nom, prenom)
Produits(idprodf, libellé, prix)
Acheter(idcli, idprod, quantite)
Mais le champ quantité ne fait pas partie de l'identifiant de la relation, c'est une donnée enregistrée dans la relation, portée par la relation (ou l'association) et cette relation (ou association) Acheter est donc porteuse d'information, de données.

Est-ce que cette réponse clarifie les choses ou ne concerne pas ton problème ?

0