0%

Hoofdstuk 6

Verbind tabellen in plaats van gegevens te herhalen

Laat een uitlening naar twee records verwijzen

Riley heeft de accuboormachine geleend. De catalogus kent beide records al, maar geen van beide hoort naar een nieuwe rij te worden gekopieerd.

items
idasset_tagname
1IT-100Cordless drill
members
idmember_codename
17MB-017Riley

Een uitlening kan in plaats daarvan de twee ID’s opslaan:

loans.iditem_idmember_idchecked_out_onreturned_on
5011172026-08-18NULL

Volg nu de twee getallen in de uitleenrij. Elke pijl eindigt bij het overeenkomende id; uitlening 501 verwijst zelf nergens naartoe:

Uitlening 501 gebruikt item_id 1 om naar voorwerp 1, Cordless drill, te verwijzen en member_id 17 om naar lid 17, Riley, te verwijzen.

Lees die laatste rij van links naar rechts. Het id van elke tabel is de primaire sleutel. item_id is 1 en verwijst terug naar de boormachine. member_id is 17 en verwijst terug naar Riley. Het eigen id van de uitlening, 501, identificeert deze uitleengebeurtenis. Elk ID heeft één taak. In de afbeelding staan ITEMS, LOANS en MEMBERS voor voorwerpen, uitleningen en leden; Cordless drill is de accuboormachine.

Zo blijven veranderende gegevens op één plek. Als Rileys getoonde naam verandert, verandert de ledenrij één keer. Eerdere en huidige uitleningen blijven naar lid 17 verwijzen. Als de naam van de boormachine wordt verduidelijkt, verandert de voorwerprij om dezelfde reden één keer.

Eén lid kan in de loop van de tijd meerdere uitleenrijen hebben. Eén voorwerp kan ook meerdere uitleenrijen hebben, omdat afgeronde uitleningen als geschiedenis bewaard blijven. Dit patroon heet een één-op-veelrelatie: één bovenliggend record kan met veel gerelateerde records verbonden zijn.

De ontbrekende waarde in returned_on heeft ook een nuttige betekenis. Het voorwerp is nog niet teruggebracht. Dat gegeven helpt ons binnenkort om actieve uitleningen te vinden. Richt je voorlopig op de vorm: een uitlening bevat haar eigen gegevens en de twee ID’s die haar verbinden met records die we al hebben.

Welke waarden horen in de rij die vastlegt dat Riley de boormachine leent?