[Symfony] Vraag m.b.t. doctrine

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Ama saril

ama saril

16/02/2015 16:40:22
Quote Anchor link
Hallo php'ers,
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'?
 
PHP hulp

PHP hulp

07/12/2024 00:41:31
 
Frank Nietbelangrijk

Frank Nietbelangrijk

16/02/2015 19:23:28
Quote Anchor link
Hoi.

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:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
-id
-naam
etc


boeken:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
-id
-auteur_id
-title
-ISBN
etc
 
Ama saril

ama saril

17/02/2015 09:58:16
Quote Anchor link
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.
 
Frank Nietbelangrijk

Frank Nietbelangrijk

17/02/2015 10:26:08
Quote Anchor link
Met de one-to-many kun je tegen een beperking aanlopen inderdaad. (Wat nou als we een boek hebben die door meer dan één auteurs geschreven is)

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
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.