
Soorten relaties
Introductie
Tabellen bevatten primary- en foreign keys om relaties te specificeren.
- Primary keys:
- De kolom(men) die de unieke objecten in een tabel identificeert.
- Foreign keys:
- De kolom die linkt naar een primary key in een andere tabel.
Er zijn vervolgens verschillende soorten relaties:
- One-to-one
- One-to-many
- Many-to-many
In deze module leren we deze relaties en hun onderlinge verschillen zijn.
1. One-to-one relatie
Bij een one-to-one relatie is 1 record uit de ene tabel gelinkt aan 0 of 1 record uit een andere tabel.
We bekijken het volgende voorbeeld:

Hierin zien we het volgende:
- Tabel
studentsbevat een voornaam en achternaam van studenten.- Iedere rij bevat gegevens van een unieke student.
- Primary key is kolom
student_id.
- Tabel
student_detailsbevat details van een student: e-mail en geboortedatum.- Iedere rij bevat details van een unieke student.
- Primary key is kolom
student_id.
Hierbij is 1 record uit tabel students gelinkt aan 0 of 1 record uit tabel student_details.
Dit op overeenkomstige kolommen student_id.
De one-to-one relatie komt bijvoorbeeld voor als er veel kolommen nodig zijn om alle details van een object te kunnen verwerken.
Voor beter overzicht wordt de data dan over meerdere tabellen verdeeld.
2. One-to-many relatie
Bij een one-to-many relatie is 1 record uit de ene tabel gelinkt aan 0 of meerdere records uit een andere tabel.
We bekijken het volgende voorbeeld:

Hierin zien we het volgende:
- Tabel
studentsbevat een voornaam en achternaam van studenten.- Iedere rij bevat gegevens van een unieke student.
- Primary key is kolom
student_id.
- Tabel
course_subscriptionsbevat de vakken (courses) waarvoor een student is ingeschreven.- Iedere student kan voor meerdere vakken ingeschreven staan.
- Een foreign key is kolom
student_id.
Hierbij is 1 record uit tabel students gelinkt aan 0 of meerdere records uit tabel course_subscriptions.
Dit op overeenkomstige kolommen student_id.
De one-to-many relatie is in de praktijk het meestvoorkomend.
Er is over het algemeen een relatie tussen een primary key en een foreign key.
3. Many-to-many relatie
Bij een many-to-many relatie is 1 record uit de ene tabel gelinkt aan 0 of meerdere records uit een andere tabel, en omgekeerd.
We bekijken het volgende voorbeeld:

Hierin zien we het volgende:
- Tabel
studentsbevat een voornaam en achternaam van studenten.- Iedere rij bevat gegevens van een unieke student.
- Primary key is kolom
student_id.
- Tabel
course_subscriptionsbevat de vakken (courses) waarvoor een student is ingeschreven.- Iedere student kan voor meerdere vakken ingeschreven staan.
- Een foreign key is kolom
student_id. - Een foreign key is kolom
course_id.
- Tabel
coursesbevat details van de vakken (courses).- Iedere rij bevat gegevens van een uniek vak.
- Primary key is kolom
course_id.
Iedere student kan voor meerdere vakken ingschreven staan. Ieder vak kan door meerdere studenten gevolgd worden.
Er is over het algemeen een relatie tussen primary key in de ene tabel, via foreign keys in een tussentabel, met een primary key in een andere tabel.
Samenvatting
- Er zijn verschillende soorten relaties:
- One-to-one
- 1 record uit de ene tabel is gelinkt aan 0 of 1 record uit een andere tabel.
- One-to-many
- 1 record uit de ene tabel is gelinkt aan 0 of meerdere records uit een andere tabel.
- Many-to-many
- 1 record uit de ene tabel is gelinkt aan 0 of meerdere records uit een andere tabel, en omgekeerd.
- One-to-one
- De one-to-many relatie is in de praktijk het meestvoorkomend.