Direct naar de inhoud
xhosting

Primary key en foreign key

2 min. lezen

Primary key: elke rij uniek maken

Een primary key is een kolom, of een combinatie van kolommen, die elke rij in een tabel uniek aanwijst. Er mogen dus geen twee rijen met dezelfde primary key bestaan. Zo kan de database precies één rij aanwijzen wanneer je die opvraagt of wijzigt.

Vaak krijgt een tabel een kolom met een automatisch oplopend nummer als primary key. Dat nummer heeft zelf geen betekenis, maar het geeft elke klant, bestelling of artikel een eigen vaste identificatie, ook als twee klanten dezelfde naam hebben. Meer over de opbouw van tabellen lees je in tabellen, rijen en kolommen.

Foreign key: tabellen met elkaar verbinden

Een foreign key is een kolom in de ene tabel die verwijst naar de primary key van een andere tabel. Zo koppel je gegevens die bij elkaar horen zonder ze te dupliceren. Een bestelling bevat bijvoorbeeld niet de volledige klantgegevens, maar een verwijzing naar de klant.

Het adres van een klant staat daardoor op één plek. Elke bestelling haalt het op via die verwijzing, en bij een wijziging hoef je het maar één keer aan te passen.

Waarom sleutels de gegevens betrouwbaar houden

Met sleutels kan de database controleren of de gegevens kloppen. Een foreign key kan bijvoorbeeld voorkomen dat er een bestelling wordt opgeslagen voor een klant die niet bestaat. Ook kan de database weigeren een rij te verwijderen zolang er nog verwijzingen naar staan.

Sleutels bepalen de structuur van de database, niet hoe snel die gegevens worden gevonden. Dat is een ander onderwerp. Het grotere plaatje van hoe een database werkt, vind je op de kennisbankpagina over databases.

Veelgestelde vragen

Moet elke tabel een primary key hebben?

In een goed ingerichte relationele database wel. Een primary key zorgt ervoor dat elke rij uniek is en dat je rijen betrouwbaar kunt aanwijzen. Tabellen zonder primary key bestaan wel, maar zijn lastiger te beheren en te koppelen.

Kan een primary key uit meerdere kolommen bestaan?

Ja. Een samengestelde primary key bestaat uit twee of meer kolommen die samen uniek moeten zijn. Dat komt bijvoorbeeld voor in een tabel met lidmaatschappen, waarbij dezelfde persoon in verschillende groepen mag voorkomen. Vaak kiest men toch voor één losse sleutel, omdat die eenvoudiger te gebruiken is.

Corrupte database

Een corrupte database is een database met beschadigde tabellen. Lees wat het betekent, welke oorzaken er zijn en waarom een recente back-up telt.

Aparte databaseserver

Een aparte databaseserver scheidt je database van de webserver. Lees wat dat oplevert voor schaal en stabiliteit, en welke nadelen zoals vertraging er...

Wat is een database

Wat is een database? Lees welke gegevens een website erin bewaart, waarom dynamische sites er niet zonder kunnen en wat je als eigenaar moet weten.