In een one-to-many relatie kan elke rij in de gerelateerde tabel worden gerelateerd aan vele rijen in de gerelateerde tabel. Hierdoor kan veelgebruikte informatie slechts eenmaal in een tabel worden opgeslagen en vele malen in alle andere tabellen worden geraadpleegd. In een one-to-many relatie tussen tabel A en tabel B is elke rij in tabel A gekoppeld aan 0, 1 of vele rijen in tabel B. Het aantal rijen in tabel A is bijna altijd kleiner dan het aantal rijen in tabel B.
Om de one-to-many relatie te illustreren, beschouw de onderstaande voorbeeldopzet van de tabel en de gegevens:
auteurs tabel
kolom |
|
auteur_id |
primary key |
achternaam |
|
voornaam |
|
boekentabel
kolom |
|
boek_id |
primary key |
titel |
|
auteur_id |
foreign key – |
auteur_id |
foreign key koppeling naar auteur_id van auteurstabel |
auteur_id |
achternaam |
voornaam |
0001 |
henry |
john |
0002 |
smith |
adam |
0003 |
johnson |
mary |
0004 |
bailey |
harry |
book_id |
title |
author_id |
0001 |
Een database primer |
0001 |
0002 |
Bouw een datawarehouse |
0001 |
0003 |
Leer jezelf SQL |
0001 |
0004 |
101 exotische recepten |
0002 |
0005 |
Visiting europe |
0004 |
Merk op dat elke rij in de auteurstabel gerelateerd is aan 0, 1 of vele rijen in de boekentabel. Dit is intuïtief logisch omdat een auteur 0, 1 of meer dan 1 boek kan schrijven. In ons voorbeeld hierboven heeft John Henry 3 boeken geschreven, Adam Smith heeft 1 boek geschreven, Mary Johnson heeft geen boek geschreven en Harry Bailey heeft 1 boek geschreven.
Als je goed kijkt, is de bovenstaande relatie tussen de auteurstabel en de boekentabel een één-op-veel relatie. Omgekeerd is de relatie tussen de boekentabel en de auteurstabel een veel-op-één relatie.
Zie ook: One-to-One relaties en Many-to-Many relaties