Gidsen

Wat is CRUD? Create, Read, Update, Delete uitgelegd

CRUD staat voor create, read, update en delete — de vier basisdingen die een app met opgeslagen gegevens doet. Een nieuwe klant toevoegen is create, de klantenlijst bekijken is read, zijn telefoonnummer wijzigen is update, en hem verwijderen is delete. De meeste zakelijke apps — CRM's, boekingssystemen, voorraadtrackers, beheerpanelen — bestaan grotendeels uit CRUD met regels en een goede lay-out erbovenop.

Waarom het ertoe doet als je met AI bouwt

CRUD is het vocabulaire dat een vaag appidee omzet in een precieze opdracht. ‘Een app om onze leveranciers te beheren’ laat de AI gissen. ‘Maak, toon, bewerk en verwijder leveranciers, met deze velden’ vertelt precies welke schermen, databasebewerkingen en serverroutes hij moet bouwen.

Het geeft je ook een checklist voor testen. Voor elk soort record in je app kun je vier vragen stellen: kan ik er een toevoegen, ze zien, er een wijzigen en er een verwijderen — en kunnen alleen de juiste mensen elk van die dingen doen? Een verrassend aantal met AI gebouwde apps kan records aanmaken maar niet bewerken, of laat iedereen alles verwijderen.

Een alledaagse vergelijking: een doos met receptkaartjes

Stel je een doos receptkaartjes op een keukenplank voor.

  • Create: schrijf een nieuw kaartje en berg het op.
  • Read: blader door de doos, of haal het kaartje voor lasagne eruit.
  • Update: streep ‘200 g kaas’ door en schrijf ‘250 g’.
  • Delete: haal een kaartje eruit en gooi het weg.

Voeg nu regels toe: alleen de chef-kok mag kaartjes weggooien, elk kaartje moet een titel hebben, en niemand mag twee kaartjes met dezelfde naam bewaren. Dat is een CRUD-app met validatie en rechten — en daar bestaan de meeste echte apps uit.

Hoe CRUD in elke laag terugkomt

Elke bewerking verschijnt in het scherm, de server en de database. Ze naast elkaar zien verklaart veel over hoe apps worden gebouwd.

BewerkingOp het schermAPI-verzoek (REST)SQL in de database
CreateEen ‘Nieuw’-knop en een formulierPOST /api/suppliersINSERT
ReadEen lijst met zoeken en filters; een detailpaginaGET /api/suppliers en GET /api/suppliers/42SELECT
UpdateEen ‘Bewerken’-formulier of bewerken in de lijstPUT of PATCH /api/suppliers/42UPDATE
DeleteEen ‘Verwijderen’-knop met bevestigingDELETE /api/suppliers/42DELETE (of de rij als verwijderd markeren)

Het scherm is de frontend, het API-verzoek is hoe de frontend met de backend praat, en de SQL is hoe de backend met de database praat. Als die woorden nieuw zijn, zie wat een API is en wat een database is.

Een uitgewerkt voorbeeld: een uitleentracker voor apparatuur

De mediadienst van een school leent camera's en microfoons uit aan leerlingen en verliest ze steeds uit het oog. Ze willen een eenvoudige app.

De records. Twee soorten dingen: apparatuur (naam, type, serienummer, staat) en uitleningen (welk apparaat, welke leerling, datum uit, vervaldatum, datum van terugkomst).

CRUD voor apparatuur:

  • Create: medewerkers voegen een nieuwe camera toe met het serienummer. Regel: serienummers moeten uniek zijn.
  • Read: een lijst van alle apparatuur, filterbaar op type en op ‘nu beschikbaar’; een detailpagina met de uitleengeschiedenis van één item.
  • Update: de staat wijzigen naar ‘moet gerepareerd’.
  • Delete: meestal niet echt verwijderen. Als een camera met 30 eerdere uitleningen wordt verwijderd, verliezen die uitleenrecords hun koppeling. Markeer hem in plaats daarvan als ‘buiten dienst’, zodat hij uit de lijst met beschikbare apparatuur verdwijnt maar zijn geschiedenis blijft bestaan. Dit heet een zachte delete.

CRUD voor uitleningen:

  • Create: een apparaat aan een leerling uitlenen. Regel: je kunt geen apparaat uitlenen dat al is uitgeleend.
  • Read: ‘achterstallige uitleningen’ — een lijst waar de vervaldatum is verstreken en er geen terugkeerdatum is.
  • Update: de terugkeerdatum registreren wanneer het apparaat terugkomt.
  • Delete: alleen medewerkers, voor uitleningen die per ongeluk zijn ingevoerd.

Rechten. Leerlingen mogen lezen wat beschikbaar is; alleen medewerkers mogen aanmaken, bewerken of verwijderen. Deze controles draaien op de server, niet alleen door knoppen te verbergen.

Dat is de hele app. De interessante delen — geen dubbele uitleningen, een lijst van achterstallige items, een geschiedenis per item — zijn regels en query's bovenop gewone CRUD.

Belangrijke begrippen

  • Record (rij): één item, zoals één leverancier of één uitlening.
  • Entiteit / resource: een soort record, zoals ‘leveranciers’. Elk krijgt meestal een eigen tabel en een eigen set CRUD-schermen.
  • Validatie: controles op invoer — verplichte velden, een geldig e-mailadres, een positieve hoeveelheid. Doe het in het formulier voor het gemak en op de server voor de veiligheid.
  • Zachte delete: een record als verwijderd of gearchiveerd markeren in plaats van het te wissen, zodat geschiedenis en koppelingen blijven bestaan.
  • Paginering: een lange lijst per pagina tonen, zodat de app snel blijft.
  • Auditlog: een registratie van wie wat heeft aangemaakt, gewijzigd of verwijderd, en wanneer.
  • Beheerpaneel: een set CRUD-schermen waarmee medewerkers de gegevens van een app beheren.

Veelgemaakte fouten en misverstanden

  • Een van de vier vergeten. Apps worden vaak opgeleverd met aanmaken en lezen, maar zonder bewerken, dus elke typefout betekent verwijderen en opnieuw invoeren. Controleer alle vier voor elke entiteit.
  • Verwijderingen die dingen breken. Een klant verwijderen die facturen heeft kan wezenloze facturen achterlaten of de geschiedenis wissen. Beslis per entiteit: het verwijderen blokkeren, zacht verwijderen, of ook de gerelateerde records verwijderen.
  • Rechten alleen in de interface. Een Verwijderen-knop verbergen stopt iemand niet om het DELETE-verzoek te sturen. De server moet controleren wie er vraagt.
  • Bijwerken op ID zonder eigendom te controleren. Als gebruiker A /api/notes/42 kan bewerken door een getal in de URL te veranderen, kan hij de notitie van gebruiker B bewerken. Elke update en delete moet bevestigen dat het record bij de aanvrager hoort.
  • Geen bevestiging bij verwijderen. Eén verkeerde tik mag geen gegevens vernietigen. Vraag om een bevestigingsstap, of een ongedaan maken.
  • ‘CRUD is basaal, dus het is het niet waard om te bouwen.’ Veel waardevolle producten zijn CRUD-apps die beter bij een werkwijze passen dan een generieke tool.

Wat je aan je AI-appbouwer kunt vragen

Gebruik dit patroon voor elke entiteit, één voor één:

Maak een leveranciers-functie met lijst, aanmaken, bewerken en verwijderen. Velden: naam (verplicht), contact-e-mail (geldig e-mailadres), telefoon, categorie (een van: voedsel, verpakking, schoonmaak), notities. Lijstweergave met zoeken op naam en filter op categorie, 20 per pagina. Vraag bevestiging vóór het verwijderen; als een leverancier bestellingen heeft, archiveer in plaats van verwijderen. Alleen ingelogde medewerkers kunnen aanmaken, bewerken of archiveren — dwing dit af op de server.

Test daarna alle vier de bewerkingen, als een gemachtigde gebruiker en als iemand die geen toegang zou moeten hebben. Zodra één entiteit werkt, voeg je de volgende toe. Hoe je een interne tool bouwt laat zien hoe CRUD-schermen een volledige beheerapp worden, en wat Postgres is legt uit op welke database de meeste van deze apps draaien.

CRUD-apps op Mythex

CRUD-apps behoren tot de dingen die AI-appbouwers het beste doen, en Mythex is daarop geen uitzondering. Vraag in de chat om de entiteit en de velden, en Mythex koppelt een Postgres-database aan het project, maakt de tabel en bouwt de lijst-, formulier- en detailschermen in een live preview; daarna kun je /test draaien om de stroom te controleren. De docs hebben een recept voor een CRUD-app met een startprompt, en de interne-toolbouwer en dashboardsjablonen zijn goede plekken om te beginnen.

Veelgestelde vragen

Waar staat CRUD voor?

CRUD staat voor create, read, update en delete: een nieuw record toevoegen, records bekijken, een record wijzigen en er een verwijderen. Bijna elke app die gegevens opslaat is uit deze vier bewerkingen opgebouwd.

Wat is een CRUD-app?

Een CRUD-app is een app waarvan het hoofdwerk bestaat uit het beheren van records via formulieren, lijsten en detailpagina's, zoals een CRM, een voorraadtracker, een boekingsbeheer of een vacaturesite op de achtergrond. De meeste interne tools en beheerpanelen zijn CRUD-apps.

Hoe verhoudt CRUD zich tot REST-API's?

In een typische REST-API gebruikt create een POST-verzoek, read een GET, update PUT of PATCH, en delete een DELETE. De backend voert dan de bijbehorende databasebewerking uit: INSERT, SELECT, UPDATE of DELETE.

Is een CRUD-app te simpel om waardevol te zijn?

Nee. Veel bruikbare bedrijfssoftware is CRUD met goede regels, rechten en rapportages erbovenop. De waarde zit in het goed modelleren van de gegevens en het passen bij de werkwijze, niet in ongewone technologie.

Mythex · Pricing · Bouw alles met AI · Website- en app-templates · Mythex vergeleken · Woordenlijst voor apps bouwen met AI · Gratis tools voor apps bouwen met AI · English

English አማርኛ العربية Български বাংলা Bosanski Català Čeština Dansk Deutsch Ελληνικά Español Español (España) Eesti فارسی Suomi Français Français (Canada) ગુજરાતી हिन्दी Hrvatski Magyar Հայերեն Bahasa Indonesia Íslenska Italiano 日本語 ქართული Қазақ тілі ಕನ್ನಡ 한국어 Lietuvių Latviešu Македонски മലയാളം Монгол मराठी Bahasa Melayu မြန်မာ Norsk bokmål ਪੰਜਾਬੀ Polski Português (Brasil) Português (Portugal) Română Русский Slovenčina Slovenščina Soomaali Shqip Srpski Svenska Kiswahili தமிழ் తెలుగు ไทย Tagalog Türkçe Українська اردو Tiếng Việt 简体中文 繁體中文(香港) 繁體中文(台灣)