Wat is een database, in gewone taal?
Zie een database als een kast met ordners. Elke ordner is een tabel over één onderwerp: klanten, producten of afspraken. In elke ordner zitten formulieren die er allemaal hetzelfde uitzien. Zo weet je altijd waar iets staat.
Het verschil met een kast is dat een database door je app wordt gebruikt. Vult iemand een formulier in op je website, dan slaat de app dat op in de database. Kijkt iemand later in zijn account, dan haalt de app de juiste gegevens er weer uit. Dat gebeurt in een fractie van een seconde, ook als er duizenden rijen in staan.
De taal waarmee een app met de database praat heet SQL. Een voorbeeld is SELECT * FROM klanten, wat betekent: geef me alle klanten. Je hoeft SQL niet te leren, Claude Code schrijft dat voor je. Maar het is fijn om te herkennen wat er staat.
Tabellen, rijen en kolommen uitgelegd
- het onderwerp
Tabel
Een verzameling gegevens over één soort ding, bijvoorbeeld de tabel klanten. Een database bestaat meestal uit meerdere tabellen.
- de eigenschap
Kolom
Eén soort informatie die je van elk item bewaart, zoals naam, e-mailadres of plaats. Elke kolom heeft een vast type: tekst, getal of datum.
- het item
Rij
Eén klant, één bestelling of één afspraak. Elke nieuwe klant wordt een nieuwe rij in de tabel.
- het nummer
ID
Een uniek nummer per rij, meestal de kolom
id. Daarmee weet de database precies welke klant bedoeld wordt, ook als twee klanten dezelfde naam hebben.
Voorbeeld: een klantentabel
Stel, je bouwt een eenvoudig klantenbestand voor je eigen bedrijf. De tabel klanten krijgt dan deze kolommen:
id: een nummer dat de database zelf ophoogt, dus 1, 2, 3 enzovoort.naam: tekst, bijvoorbeeld Jansen Schilderwerken.email: tekst, het e-mailadres van de klant.telefoon: tekst, want telefoonnummers beginnen soms met een nul of een plusteken.plaats: tekst, bijvoorbeeld Amersfoort.aangemaakt_op: een datum, zodat je ziet wanneer de klant is toegevoegd.
Wil je ook bestellingen bijhouden, dan maak je een tweede tabel bestellingen met onder meer een kolom klant_id. Daarin staat het nummer van de klant die besteld heeft. Zo koppel je tabellen aan elkaar zonder gegevens dubbel op te slaan. Dit heet een relatie, en daarom spreek je ook wel van een relationele database.
Bij vibe coding hoef je zo'n tabel niet zelf te ontwerpen. Je vraagt Claude Code bijvoorbeeld: maak een database voor mijn klanten met naam, e-mail, telefoon en plaats, en een tabel voor bestellingen die aan een klant gekoppeld is. Het stelt de tabellen voor en legt uit waarom.
Wanneer heb je een database nodig?
Je hebt een database nodig zodra je app iets moet onthouden dat gebruikers invoeren of dat verandert. Denk aan accounts, reserveringen, bestellingen, berichten via een formulier of een lijst met taken. Zonder database is alles weg zodra de pagina ververst.
Je hebt er meestal geen nodig voor een eenvoudige website met vaste teksten en foto's, zoals een portfolio of een landingspagina. Die gegevens staan gewoon in de bestanden van je site. Ook een rekenhulpje dat niets bewaart kan zonder.
Twijfel je, beschrijf dan aan Claude Code wat je app moet doen en vraag of er een database nodig is. Het is prima om klein te beginnen en een database later toe te voegen.
Een database maken met Prisma Postgres
In de cursus gebruiken we Prisma Postgres: een online database van Prisma, gebaseerd op PostgreSQL. Je hoeft niets te installeren en het gratis plan vraagt geen creditcard.
- 1
Maak een database aan
Log in op console.prisma.io met je GitHub- of Google-account en maak een nieuwe database aan voor je project.
- 2
Kopieer de connection string
Klik op Connect to your database. Je krijgt een regel die begint met
postgres://. Zet die alsDATABASE_URLin het bestand.envvan je project en zorg dat.envin.gitignorestaat. - 3
Laat Claude Code de tabellen maken
Vraag Claude Code om je tabellen met Prisma ORM op te zetten. Het beschrijft ze in een schemabestand en zet ze in je database als jij akkoord geeft.
- 4
Controleer of het werkt
Start je app met
npm run dev, voer een testklant in en ververs de pagina. Staat de klant er nog, dan is hij opgeslagen. Vraag Claude Code gerust om te laten zien wat er in een tabel staat. - 5
Gebruik een aparte testdatabase
Maak voor het uitproberen een tweede database aan. Zo raken je echte gegevens niet in de war als je grote wijzigingen laat maken.
Waar let je op met gegevens in een database?
- Sla alleen op wat je echt nodig hebt. Minder persoonsgegevens betekent minder risico en past beter bij de AVG.
- Wachtwoorden sla je nooit leesbaar op. Laat Claude Code ze versleuteld opslaan met een zogenoemde hash, en controleer dat het dat ook doet.
- Test met verzonnen gegevens, niet met echte klantgegevens.
- Je connection string is de sleutel van je database. Zet hem alleen in
.enven nooit op GitHub. Zet je je app online, dan vul je hem in bij de geheime instellingen van je hostingdienst.
Veelgestelde vragen
Wat is het verschil tussen een database en Excel?
Beide gebruiken rijen en kolommen. Een spreadsheet is gemaakt om door mensen bekeken en bewerkt te worden. Een database is gemaakt om door een app gebruikt te worden, door veel gebruikers tegelijk, met vaste regels over wat er in elke kolom mag staan.
Wat is PostgreSQL?
PostgreSQL, vaak kortweg Postgres genoemd, is een veelgebruikt en betrouwbaar databasesysteem. Prisma Postgres is daarop gebaseerd. Naast Postgres is MySQL ook een bekende keuze; de basis met tabellen, rijen en kolommen is hetzelfde.
Wat is Prisma Postgres?
Prisma Postgres is een online database van Prisma. Je maakt hem aan op console.prisma.io en hoeft niets te installeren. Er is een gratis plan zonder creditcard; de actuele limieten staan op prisma.io/pricing.
Moet ik SQL leren om een database te gebruiken?
Nee, voor vibe coding niet. Claude Code schrijft de code voor je, met Prisma ORM vaak zelfs zonder losse SQL, en legt uit wat het doet. Het is wel handig om eenvoudige opdrachten zoals SELECT te herkennen.
Heeft elke website een database nodig?
Nee. Een website met vaste teksten en afbeeldingen kan prima zonder. Je hebt een database nodig zodra bezoekers iets invoeren dat bewaard moet blijven, zoals een account, een boeking of een bestelling.