Voorbeeld
Onderstaande tabelindeling zal ik in de rest van de tutorial gebruiken om het 1 en ander uit te werken. Ik heb het oude voorbeeld wat uitgebreid, om zo met meer dan 2 (in dit geval 4) tabellen ook een JOIN te kunnen laten zien.
Bij de tabel ‘coureur_stal’ staan een start en einddatum, zodat je ook kan zien voor welke renstallen een coureur al eerder heeft gereden. Het voorbeeld gaat over coureurs die al dan niet in een bepaald team zitten, en teams die al dan niet coureurs in hun renstal hebben. Dus niet iedere coureur hoeft lid te zijn van een renstal. is lid van een renstal, maar ook niet iedere renstal heeft een coureur om een auto te rijden. Deze datum zal in de voorbeeld uitwerkingen niet verder worden gebruikt. Ik heb het er bijgevoegd, om te laten zien dat het wel een genormaliseerde tabelindeling is. Zou ik de start- en einddatum niet hebben toegevoegd, dan had er geen koppeltabel hoeven zijn, maar had ik het renstal_id in de tabel ‘coureurs’ moeten zetten.
Verder ga ik er in het voorbeeld vanuit dat er maar 1 racebaan per land is, zodat er geen aparte tabel met landen hoeft te komen.
TABEL coureurs:
- id (1, 2, 3, 4, 5, 6)
- coureur (Jansen, Schumacher, Verstappen, Rubens, Heins, Markus)
- leeftijd (41, 39, 23, 34, 35, 24)
TABEL renstal:
- id (1,2,3,4)
- naam (Snel, Sneller, Snelst, Allersnelst)
TABEL racebaan:
- id (1,2,3,4,5)
- land (Nl, De, GB, Bra, Be)
- thuisbaan_van (1,3,NULL,NULL,2)
TABEL coureur_stal:
- id (1,2,3,4)
- coureur_id (1,6,4,2)
- renstal_id (1,2,3,4)
- startdatum
- einddatum
Zoals aangegeven wordt de datum verder niet gebruikt, hier heb ik dus ook geen waarde aan meegegeven