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:
| id | name | category |
|---|---|---|
| 1 | Cordless drill | tools |
| 2 | Folding table | events |
| 3 | Projector | electronics |
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
| Kolom | Wat hoort hier? |
|---|---|
id | een geheel getal als ID van het voorwerp |
name | tekst met de naam van het voorwerp |
category | tekst 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:
| Tabel | Eé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.