Doctrine2 - relaties met koppeltabel
Erik Rijk
08/05/2014 20:50:18Hi!
Ik heb de volgende tabellen:
Travel
* id
* name
rel_travel_youtube
* id
* travel_id
* youtube_id
Youtube
* id
Vereist geen verdere uitleg hoop ik.
Ik ben bezig met doctrine2 en wil deze tabellen nu aan elkaar koppelen en vraag mij af wat de beste optie hiervoor is.
1 reis kan meerdere gekoppelde youtube video's hebben.
1 video kan bij meerdere reizen getoond worden.
Travel -> ManyToMany -> RelTravelYoutube
RelTravelYoutube -> ManyToMany -> Travel
Youtube -> ManyToMany -> RelTravelYoutube
RelTravelYoutube -> ManyToMany -> Youtube
Maar dit kan niet de bedoeling zijn lijkt mij.
Graag reacties.
Gr,
Erik
Toevoeging op 08/05/2014 20:53:44:
http://docs.doctrine-project.org/en/2.0.x/reference/annotations-reference.html#manytomany
Dit example laat volgens mij de oplossing wel zien?
Ben altijd in voor een interessante discussie!
Ik heb de volgende tabellen:
Travel
* id
* name
rel_travel_youtube
* id
* travel_id
* youtube_id
Youtube
* id
Vereist geen verdere uitleg hoop ik.
Ik ben bezig met doctrine2 en wil deze tabellen nu aan elkaar koppelen en vraag mij af wat de beste optie hiervoor is.
1 reis kan meerdere gekoppelde youtube video's hebben.
1 video kan bij meerdere reizen getoond worden.
Travel -> ManyToMany -> RelTravelYoutube
RelTravelYoutube -> ManyToMany -> Travel
Youtube -> ManyToMany -> RelTravelYoutube
RelTravelYoutube -> ManyToMany -> Youtube
Maar dit kan niet de bedoeling zijn lijkt mij.
Graag reacties.
Gr,
Erik
Toevoeging op 08/05/2014 20:53:44:
http://docs.doctrine-project.org/en/2.0.x/reference/annotations-reference.html#manytomany
Dit example laat volgens mij de oplossing wel zien?
Ben altijd in voor een interessante discussie!
PHP hulp
27/11/2024 12:01:48rel_travel_youtube is de koppel tabel en kan geen n-n relationship hebben.
Dit kan je voorkomen door een unique constraint op travel.id en YouTube_id leggen.
Met andere woorden gooi die id kolom weg en maak van beide kolommen een PK
Dit kan je voorkomen door een unique constraint op travel.id en YouTube_id leggen.
Met andere woorden gooi die id kolom weg en maak van beide kolommen een PK
Gewijzigd op 08/05/2014 21:06:33 door Ger van Steenderen
Erik Rijk
08/05/2014 21:26:32Dat klink logisch.
rel_travel_youtube
ALTER TABLE `rel_travel_youtube` ADD PRIMARY KEY( `travel_id`, `youtube_id`);
ALTER TABLE `rel_travel_youtube` ADD FOREIGN KEY (`travel_id`) REFERENCES `vacation`.`travel`(`id`) ON DELETE RESTRICT ON UPDATE RESTRICT; ALTER TABLE `rel_travel_youtube` ADD FOREIGN KEY (`youtube_id`) REFERENCES `vacation`.`youtube`(`id`) ON DELETE RESTRICT ON UPDATE RESTRICT;
Nu dan enkel nog een kwestie om mijn entiteiten te genereren vanuit de database?
rel_travel_youtube
ALTER TABLE `rel_travel_youtube` ADD PRIMARY KEY( `travel_id`, `youtube_id`);
ALTER TABLE `rel_travel_youtube` ADD FOREIGN KEY (`travel_id`) REFERENCES `vacation`.`travel`(`id`) ON DELETE RESTRICT ON UPDATE RESTRICT; ALTER TABLE `rel_travel_youtube` ADD FOREIGN KEY (`youtube_id`) REFERENCES `vacation`.`youtube`(`id`) ON DELETE RESTRICT ON UPDATE RESTRICT;
Nu dan enkel nog een kwestie om mijn entiteiten te genereren vanuit de database?