Sommaire

Les relations bidirectionnelles avec attributs

Imaginons que l’on souhaite avoir le nombre de produits générés pour chaque produit par marque.

Cela signifie qu’à chaque jointure entre l’entité Produit et l’entité Distributeur, il faudrait renseigner un paramètre nbProduit.

Mais où stocker cette information ?

Dans l’entité Produit, ce n’est pas possible, car cette information dépend de chaque marque. De même pour l’entité Distributeur, l’information dépend du produit.

Il faudrait pouvoir l’insérer dans la table de liaison produit_distributeur, mais nous n’avons pas accès à cette table. C’est Symfony qui la gère pour nous.

La seule solution est de créer et de gérer soi-même la table intermédiaire pour pouvoir y ajouter la colonne nbProduit. Mais il ne faut plus passer par une jointure ManyToMany.

Il faudra gérer une relation OneToMany entre l’entité produit et l’entité intermédiaire que nous créerons et une relation ManyToOne entre l’entité intermédiaire et la table distributeur.