0%

Wanneer een bestand niet meer genoeg is

Tabellen, rijen, kolommen en een schema

SQLite geeft het uitleenproject een echte database-engine. We moeten nog bepalen hoe de gegevens binnen de database worden ingedeeld. Het e-mailadres van Riley werd gekopieerd omdat elke CSV-rij tegelijk een lid, een voorwerp en een uitlening probeerde te beschrijven. Een relationele database kan elke soort een eigen tabel geven. We beginnen met de voorwerpen die mensen kunnen lenen.

Dit zijn de huidige rijen in de tabel items:

idnamecategory
1Cordless drilltools
2Folding tableevents
3Projectorelectronics

Zoek nu de projector in deze tabel en lees de rij van links naar rechts. De drie waarden horen bij één voorwerp: het nummer is 3, de naam is Projector en de categorie is electronics.

Een rij bevat één record. Een kolom geeft in elke rij een naam aan dezelfde soort waarde. Als je de kolom category van boven naar beneden leest, krijg je tools, events en electronics.

Bekijk het schema van de tabel

De rijen hierboven zijn de gegevens die nu zijn opgeslagen. De tabel heeft ook een ontwerp dat bepaalt wat elke rij kan bevatten:

Schema voor items

KolomWat hoort hier?
ideen geheel getal als ID van het voorwerp
nametekst met de naam van het voorwerp
categorytekst met de naam van de groep waartoe het voorwerp behoort

Dat ontwerp is het schema van de tabel. Het geeft de tabel een naam en elke kolom een naam en een doel.

Stel dat Projector wordt hernoemd naar Portable projector. Dan verandert slechts één waarde in de huidige rijen. Het schema heeft nog steeds dezelfde drie kolommen.

Stel nu dat de catalogus moet bijhouden of elk voorwerp in goede staat is. Een kolom condition toevoegen verandert het schema, omdat elke rij over een voorwerp een nieuwe, benoemde plek voor die informatie krijgt.

Welke handeling verandert het schema van de tabel items?

Verschillende gegevens, verschillende tabellen

In de uiteindelijke uitleendatabase krijgt elke soort een eigen tabel:

TabelEén rij beschrijft
memberséén persoon die materiaal kan lenen
itemséén voorwerp dat kan worden geleend
loanséén keer dat een lid een voorwerp leent

Die tabellen verbinden we later met elkaar. Blijf voorlopig bij items en stel je voor dat iemand vraagt: “Wat kunnen mensen lenen?” Het antwoord heeft alleen de namen nodig, niet elke waarde uit elke rij. In de volgende les vraag je SQLite om alleen de kolom name terug te geven.