[Symfony] Vraag m.b.t. doctrine
Ben de laatste dus bezig gegaan met het symfony framework en ben nu bezig met doctrine.
Als ik de volledige tutorials volg dan wordt het database schema altijd gegenereerd vanuit de entity classes. Ik vindt dit vooral vervelend omdat er bij relationships geen tussentabel wordt gegenereerd (degene die 2 tabellen met elkaar verbind).
Ik bedoel alsvolgt; Stel er zijn twee tabellen 'tbl_product' en 'tbl_categorie' en er moet hier een 1 op meer relatie worden gemaakt (een categorie kan meerdere producten bevatten). Als ik dit dan genereer met doctrine krijg ik dit:
tbl_categorie
categorie_id
naam_categorie
tbl_product
product_id
naam_product
categorie_id
(hij zet hier dus categorie_id in de tabel product_id)
Als ik het zelf zou doen maak ik altijd een tussentabel waar ik de relatie in vastleg. Dus een extra tabel met categorie_id en product_id. Zie hieronder
tbl_categorie_product
categorie_id
product_id
Ik ben dan ook geneigd om simpelweg op PDO terug te vallen waarin ik mijn volledige eigen query creeer (met de joins erin) maar is dit dan 'fout' of is het een kwestie van 'zelf bepalen'?
Doctrine heeft een prachtige mogelijkheid voor many-to-many relations. Wellicht heb je wel een relatie als one-to-many gemaakt nog niet met many-to-many. Je kunt zelfs de naam voor de koppeltabel opgeven.
Kijkt u eens hier: http://docs.doctrine-project.org/en/latest/reference/association-mapping.html#many-to-many-bidirectional
Toevoeging op 16/02/2015 19:29:18:
Voor een one-to-many heb je geen koppeltabel nodig. Ik denk dat je die twee door elkaar haalt.
one-to-many is gewoon dit:
auteurs:
boeken:
Dank je wel voor de link. Ik ga toch nog een poging wagen. Maakte vroeger zelf altijd tussentabellen omdat ik dat altijd 'makkelijk' vond. Misschien is dat toch niet de juiste manier. Ga er in ieder geval mee aan de slag.
Bij twijfel zou ik dus zeker een many-to-many gebruiken.
Als je eenmaal een paar entities gemaakt hebt met de verschillende joins dan gaat het makkelijker.
Succes