Uitleg en soorten relaties
Wat zijn relaties?
Als je een goede Entity Relation Diagram (ERD in het kort) hebt van jouw applicatie zie je vaak dat er lijntjes lopen tussen entiteiten (of Models). Deze lijntjes geven aan dat de entiteiten een relatie hebben met elkaar. Een aantal voorbeelden van relaties:
- Een auteur met boeken
- Een student met een klas
- Een dokter met patienten
- Een film met een categorie
En zo kan je nog wel even doorgaan.
Soorten relaties
Afhankelijk van hoe de pijl in jouw ERD loopt heb je verschillende soorten relaties.
One to Many
Vertaald een op veel. Een Auteur heeft of kan meerdere boeken hebben geschreven. Ook al heeft een Auteur maar een (of geen) boeken geschreven, de relatie tussen de Auteur en Boek blijft One To Many.
Many to One
Als je de One To Many omdraait dan krijg je een Many to One. Uit bovenstaand voorbeeld kan je ook zeggen dat alle boeken een auteur hebben (en dit moet altijd). Je spreekt dan over een Many to One.
One to One
In sommige gevallen wil je een een-op-een-koppeling maken. Dit doe je alleen als er een goede reden voor is, anders kan je beter alle data in één tabel stoppen. Een voorbeeld van One to One is bij een bestelling waarbij er meerdere adressen zijn, bijvoorbeeld een leveringsadres en een factuuradres. Beide zijn van het type adres en horen in een tabel met adresgegevens. De besteltabel (of Order entity) heeft dan wel 2 properties (velden) nodig, een voor leveringsadres en een voor factuuradres.
Many to Many
De meest lastige vorm is een Many to Many. Dit komt doordat een standaard database dit technisch niet kan en Symfony op de achtergrond een koppeltabel maakt tussen de twee Entiteiten. Een voorbeeld hiervan is met boeken en schrijvers (auteurs). Er zijn boeken die door meerdere auteurs geschreven kunnen worden en auteurs kunnen meerdere boeken schrijven. Dit is een voorbeeld van een Many to Many waarbij er een koppeltabel gemaakt wordt tussen beide Entities.
Meer in Relaties