Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Bonjour à tous,
je suis confronté à un petit problème de compréhension au niveau des associations avec Doctrine.
Voici le topo : j'ai une table "provider" et une table "category". Les providers ont une seule category et les category peuvent avoir plusieurs provider. J'ai donc quelque chose de ce style en BDD :
provider : id ... category : id ... provider_category : provider_id category_id
Ce que je n'arrive pas à faire, c'est le mapping de cette association (basique, mais je bloque !).
Pour l'instant, j'ai défini un mapping de type ManyToMany bi-directionnel mais je pense que je pourrais améliorer ça (surtout que j'ai des cas de figures similaires pour d'autres tables...). En effet, il est un peux stupide de faire une boucle pour pouvoir récupérer une seule catégorie...
J'ai vu sur un tutoriel que certaines personnes définissaient la relation entre les entités au niveau de l'entité de liaison. Est-ce une bonne chose dans mon cas ? Sinon, quand s'en servir ?
Une petite piste pour m'éclairer ?
Merci d'avance,
Romain
Hors ligne
Salut, je vois pas vraiment où est la complexité de cette relation. Si tes provider ne peuvent avoir qu'une seule catégorie il suffit d'avoir une clé étrangère category_id dans la table provider et c'est réglé.
De cette manière un provider ne peux avoir qu'une seule catégorie et une catégorie plusieurs provider. Par contre un provider ne peux être associé qu'à une seule catégorie (donc je sais pas si c'est ce que tu veux ou pas). Si c'est le cas c'est d'un côté une OneToMany et de l'autre une ManyToOne.
Si c'est pas ça tu n'as pas le choix que de faire 2 ManyToMany et la contrainte d'unicité tu la gère côté code et non côté bdd.
Hors ligne
Salut Orkin !
Désolé pour la réponse tardive. Alors le problème c'est que j'ai une base de données imposée et que je ne peux pas faire de changements...
J'ai donc suivi ton conseil et fait deux relations OneToMany / ManyToOne.
Hors ligne