28 nov 2025·8 min leestijd

Naamgevingsconventies voor databases van het adminpaneel die leesbaar blijven

Gebruik naamgevingsconventies voor je admin-database om automatisch gegenereerde schermen leesbaar te houden: duidelijke regels voor tabellen, velden, enums, relaties en een checklist.

Naamgevingsconventies voor databases van het adminpaneel die leesbaar blijven

Waarom namen bepalen of een adminpaneel duidelijk of rommelig aanvoelt

De meeste adminpanelen worden opgebouwd vanuit je datamodel. Tabel- en kolomnamen eindigen als menu-items, paginatitels, kolomkoppen, filterlabels en zelfs de woorden die mensen in zoekvakken typen.

Als namen duidelijk zijn, kan een beheerder in seconden een lijst scannen en begrijpen. Als namen onduidelijk zijn, pauzeren ze, raden ze, openen een record, gaan terug en proberen het opnieuw. Die aarzeling telt op. Het leidt tot “Hoe vind ik de juiste klant?”-supportvragen en trainingen die niemand wil lezen.

Ontwikkelaars geven meestal namen voor bouwen en debuggen. Operators geven namen die helpen het werk te doen. Een ontwikkelaar kan tevreden zijn met acct, addr1 of stat omdat hij weet wat het betekent. Een operator heeft liever “Account”, “Address line 1” en “Status” zonder te hoeven decoderen.

In een adminscherm betekent “leesbaar” meestal:

  • Je kunt een tabel scannen en elke kolom begrijpen zonder een rij te openen.
  • Je kunt zoeken en filteren met dezelfde woorden die je dagelijks gebruikt.
  • Je kunt sorteren en waarden vergelijken zonder verrassingen (bijvoorbeeld datums die echt datums zijn, en statussen die consistent zijn).

Als je een platform gebruikt dat schermen genereert vanuit het model (bijv. AppMaster’s Data Designer en admin-achtige views), wordt naamgeving onderdeel van UI-ontwerp. Goede namen geven je schone standaardschermen vanaf dag één, voordat je labels en lay-outs gaat finetunen.

Een eenvoudige naamgevingsbaseline die je hele team kan volgen

Als je wilt dat gegenereerde adminschermen er vanaf dag één verzorgd uitzien, spreek dan een baseline af voordat iemand de eerste tabel toevoegt. De meeste naamgevingsproblemen zijn niet technisch. Het zijn consistentieproblemen.

Kies één identifier-stijl en mix deze niet. Voor databases is snake_case meestal het makkelijkst te lezen en te doorzoeken. Als je stack camelCase verwacht, houd dat overal aan (tabellen, kolommen, foreign keys, enums). Stijlwissels halverwege een project zijn wat labels en filters willekeurig doen aanvoelen.

Een baseline die voor de meeste teams werkt:

  • Gebruik volledige woorden: customer_id, niet cust_id; description, niet desc.
  • Gebruik duidelijke zelfstandige naamwoorden voor entiteiten en duidelijke werkwoorden voor acties: invoice, payment, refund_requested.
  • Gebruik consistente timestamp-namen: created_at, updated_at, deleted_at.
  • Vermijd vage woorden zoals data, info, value of type tenzij je context toevoegt (bijvoorbeeld shipping_address, payout_method).
  • Houd enkelvoud vs meervoud consistent (veel teams gebruiken meervoud voor tabellen zoals customers en enkelvoud voor kolommen zoals customer_id).

Schrijf een klein woordenlijstje en houd het zichtbaar. Bepaal vroeg of je met customer, client, account of user bedoelt, en houd je dan aan één term. Doe hetzelfde voor “order” vs “purchase” of “ticket” vs “case”.

Een snelle check: als twee mensen naar een kolom als account_status kijken en het zonder vragen eens zijn wat het betekent, werkt de baseline. Zo niet, hernoem het voordat je schermen en filters erop bouwt.

Tabelnaamregels die netjes naar menu's en lijsten mappen

De meeste adminpanelen zetten tabelnamen om in menu-items, lijsttitels en breadcrumbs. Je schema is niet alleen voor engineers. Het is de eerste schets van je UI.

Kies één stijl voor entiteitstabellen en houd je eraan: enkelvoud (user, invoice, ticket) of meervoud (users, invoices, tickets). Enkelvoud leest vaak beter in formulierkoppen (“Edit Ticket”), terwijl meervoud netter kan ogen in menu’s (“Tickets”). Beide zijn prima. Het mixen van beide maakt navigatie inconsistent.

Noem tabellen naar wat ze zijn, niet naar wat ze doen. Een tabel moet een ding representeren dat je kunt aanwijzen. payment is een ding; processing is een actie. Als je later refunds, retries en settlements toevoegt, wordt een “processing”-tabel misleidend.

Regels die menu's en lijsten schoon houden:

  • Gebruik concrete zelfstandige naamwoorden (customer, subscription, invoice, ticket_message).
  • Vermijd bucket-tabellen voor permanente data (settings, misc, temp, data). Splits ze in echte entiteiten (notification_setting, tax_rate, feature_flag).
  • Geef de voorkeur aan korte, leesbare samengestelde namen met underscores (purchase_order, support_ticket) boven afkortingen.
  • Voeg een moduleprefix alleen toe als het botsingen voorkomt (bijvoorbeeld billing_invoice vs invoice). Als je prefix gebruikt, pas het consequent toe binnen de module.

Als je AppMaster gebruikt om schermen direct uit je schema te genereren, produceren stabiele, zelfstandignaam-gebaseerde tabelnamen meestal een schoon standaardmenu en lijstweergave met minder nabehandeling.

Join-tabellen en identifiers: many-to-many leesbaar houden

Many-to-many-relaties zijn vaak waar adminpanelen rommelig beginnen te worden. Als de join-tabel en zijn sleutels goed genoemd zijn, blijven gegenereerde schermen leesbaar zonder veel handmatig werk.

Begin met één saaie regel en doorbreek die niet: elke tabel heeft een primaire sleutel id. Gebruik niet user_id als primaire sleutel in de ene tabel en id in een andere. Uniforme identifiers maken relaties voorspelbaar en helpen gegenereerde formulieren en referentievelden consistent te blijven.

Voor pure join-tabellen noem je ze naar beide entiteiten volgens één patroon en volgorde. Veelgebruikte opties zijn alfabetisch (product_tag) of “belangrijkste ding eerst” (user_role). Kies één ordening en houd die overal aan.

Vermijd vage namen zoals links of mappings tenzij de tabel echt generieke cross-object links bevat. In de meeste adminpanelen wint specificiteit van creativiteit.

Wanneer een join-tabel een echte entiteit wordt

Als de relatie extra velden heeft, behandel het als een eigen model en benoem het als een zelfstandig naamwoord dat mensen begrijpen: membership, assignment, subscription. Bijvoorbeeld, als een rol van een gebruiker starts_at, ends_at en granted_by heeft, is user_role prima, maar membership leest mogelijk beter in de UI.

Eenvoudige regels die schermen professioneel houden:

  • Gebruik id als primaire sleutel in elke tabel.
  • Noem join-tabellen met beide entiteiten in een consistente volgorde (user_role).
  • Gebruik duidelijke foreign keys zoals user_id en role_id.
  • Voeg een uniqueness-regel toe die overeenkomt met de realiteit (bijvoorbeeld één role_id per user_id).
  • Als je geschiedenis toestaat, laat de uniqueness-regel passen bij “actieve” records (bijvoorbeeld uniek waar ended_at null is).

Deze keuzes houden stand als je data groeit en werken goed met AppMaster’s Data Designer, waar schermen rechtstreeks uit het model gegenereerd kunnen worden.

Veldnaamgevingspatronen die duidelijke kolommen en filters opleveren

Test a ticketing example
Bouw een supportticket-model en zie hoe join-table namen gegenereerde schermen beïnvloeden.
Try It

Veldnamen doen meer dan ontwikkelaars helpen. Ze bepalen wat gebruikers zien als kolomkoppen, filterlabels en formuliervelden.

Voorspelbare suffixen halen giswerk weg:

  • Gebruik _id voor foreign keys: customer_id, assigned_agent_id.
  • Gebruik _at voor timestamps: created_at, paid_at, closed_at.
  • Gebruik _count voor tellers: login_count, attachment_count.

Booleans moeten als normale zinnen lezen. Geef de voorkeur aan is_ en has_ zodat checkboxen in één oogopslag duidelijk zijn: is_active, has_paid, is_verified. Vermijd dubbele ontkenningen zoals is_not_approved. Als je een “niet”-staat nodig hebt, modelleer het positieve en keer de logica om in de code.

Geldvelden zijn een veelvoorkomende bron van verwarring in admin-grids. Kies één aanpak en houd je eraan: sla kleine eenheden op (zoals centen) als integer, of gebruik decimalen met vaste precisie. Noem het veld zodat niemand hoeft te raden. Bijvoorbeeld total_amount_cents + currency_code, of total_amount + currency_code. Mix price, amount en total niet tenzij ze verschillende begrippen vertegenwoordigen.

Tekstvelden moeten specifiek zijn over doel, niet alleen type. description is klantgericht. internal_comment is privé. notes is een vangnet en moet voorzichtig gebruikt worden. Als je meerdere notities hebt, benoem ze naar publiek: customer_note, agent_note.

Contactvelden moeten letterlijk zijn omdat ze vaak snelle filters worden: website_url, contact_email, billing_email. In AppMaster-gegenereerde adminschermen worden namen als deze meestal nette standaardlabels.

Relaties en foreign keys: namen die het datamodel uitleggen

Goede relaties lezen als normale Nederlandse zinnen. Als een adminpaneel gegenereerd wordt vanuit de database, worden foreign key-namen vaak kolomtitels, filters en formulierlabels.

Houd één regel: de foreign key-kolom is de naam van de gerefereerde tabel plus _id. Als je customer.id hebt, gebruik customer_id. Als je order.id hebt, gebruik order_id. Deze consistentie maakt het duidelijk waar een kolom naar verwijst.

Self-relaties hebben extra duidelijkheid nodig omdat ze later makkelijk verkeerd gelezen worden. Vermijd generieke related_id. Gebruik namen die richting en betekenis uitleggen, zoals parent_id voor bomen, manager_id voor organigrammen, of merged_into_id voor deduplicatie.

Als een relatie een join-tabel gebruikt, noem het zo dat het als een zin leest. Bijvoorbeeld ticket_assignee.user_id is duidelijker dan ticket_user.user_id als de rol “assignee” is (en niet “reporter” of “watcher”).

Praktische checks die de meeste problemen voorkomen:

  • Hergebruik owner_id niet met verschillende betekenissen in tabellen. Geef de voorkeur aan created_by_user_id, account_manager_user_id of billing_contact_id.
  • Als je meerdere relaties naar dezelfde tabel hebt, voeg de rol toe: requested_by_user_id en approved_by_user_id.
  • Kies één soft-delete marker en houd je daaraan. deleted_at is algemeen begrepen en werkt goed met filters.

Als je later schermen in AppMaster bouwt, verschijnen deze namen overal, dus een beetje zorg hier bespaart veel UI-opruimwerk.

Enums en statusvelden die begrijpelijk blijven na verloop van tijd

Prototype one feature fast
Test je naamgevingsbaseline op een kleine module voordat de database groeit.
Create a Prototype

Als je adminpaneel gegenereerd wordt uit je database, is de snelste manier om schermen rommelig te laten voelen het verspreiden van betekenis over veel kleine flags. Geef de voorkeur aan één duidelijke status-enum voor de hoofdlevenscyclus van een record en houd extra flags alleen voor echt apart gedrag.

Een nuttige regel: als gebruikers zouden vragen “Waar staat dit item in zijn traject?”, is dat een status. Als het is “Moeten we het verbergen?” of “Is het vergrendeld?”, is dat een aparte boolean.

Eén status is beter dan vijf booleans

In plaats van is_new, is_in_progress, is_done, is_cancelled, gebruik één ticket_status. Het leest beter in lijstkolommen, filters en bulkacties. Het voorkomt ook onmogelijke combinaties zoals “done + in_progress”.

Houd enumwaarden stabiel. UI-tekst kan veranderen, maar opgeslagen waarden niet. Sla pending op, niet waiting_for_review. Sla rejected op, niet rejected_by_manager. Je kunt altijd vriendelijkere labels tonen later zonder data te migreren.

Wanneer je extra detail nodig hebt, voeg dan een tweede veld toe in plaats van status te overladen. Voorbeeld: behoud payment_status als de levenscyclus en voeg failure_reason (tekst) toe wanneer nodig.

Benoem enums per domein (zodat filters logisch zijn)

Gebruik een domeinprefix zodat schermen leesbaar blijven wanneer meerdere modellen een “status” hebben:

  • payment_status (order checkout)
  • ticket_priority (support urgentie)
  • user_role (toegangslevel)
  • invoice_status (billing levenscyclus)
  • delivery_status (verzending levenscyclus)

Scheid levenscyclus van operationele vlaggen. Bijvoorbeeld: status beschrijft waar iets in de workflow zit, terwijl is_archived betekent dat het uit de dagelijkse lijsten verborgen moet worden.

Schrijf één zin die elke enumwaarde uitlegt in je teamnotities. De toekomstige jij zal het verschil tussen cancelled en voided vergeten. Als je AppMaster gebruikt, helpen die korte definities ook om gegenereerde dropdowns en filters consistent te houden tussen web en mobiel.

Randgevallen: datums, auditvelden en “type”-kolommen

Naamgevingsgidsen behandelen vaak tabellen en basisvelden, maar adminpanelen worden rommelig bij randgevallen. Datums, auditvelden en type-kolommen zijn plaatsen waar verwarrende namen in verwarrende schermen veranderen.

Voor datums en timestamps laat de naam het verhaal vertellen: is het gepland, daadwerkelijk of een herinnering? Een eenvoudig patroon is een werkwoordachtige betekenis plus een duidelijke suffix. Bijvoorbeeld due_at (geplande deadline) en completed_at (daadwerkelijke afronding) renderen als begrijpelijke kolommen en filters. Vermijd vage paren zoals start_date en end_date wanneer je eigenlijk scheduled_at en finished_at bedoelt.

Optionele relaties zijn een andere valkuil. Bedenk niet per tabel nieuwe patronen. Houd de relatienaam stabiel en laat “optioneel” tot uiting komen door nulls toe te staan, niet door het veld te hernoemen. manager_id blijft manager_id ook al is het optioneel.

Adressen kunnen prima lijken in code maar lelijk in grids. Genummerde regels zijn oké zolang je team overal hetzelfde bedoelt. Houd ze expliciet:

  • address_line1, address_line2, city, region, postal_code, country_code
  • Vermijd address1, address2 (minder leesbaar, makkelijker te dupliceren)

Auditvelden moeten opzettelijk saai zijn:

  • created_at, updated_at
  • created_by_id, updated_by_id (alleen als je echt gebruikers-tracking nodig hebt)

Wees voorzichtig met type. Het is bijna altijd te breed en veroudert slecht. In plaats van type, benoem de betekenis: payment_method, ticket_channel, customer_tier. In schema-gedreven adminschermen (inclusief AppMaster) kan die ene keuze het verschil zijn tussen een duidelijk filter en een verwarrende dropdown.

Voorbeeld: het naamgeven van een supportticket-model dat er goed uitziet in admin

Keep vocabulary consistent
Stel één keer een woordenlijst op en hergebruik die voor tabellen, relaties en enums.
Start a Project

Een kleine, realistische supportopzet: klanten schrijven in, medewerkers reageren en tickets kunnen getagd worden. Naamgevingsconventies zorgen ervoor dat automatisch gegenereerde menu’s, lijstschermen en filters vanzelfsprekend aanvoelen.

Begin met tabelnamen die als zelfstandige naamwoorden in een zijbalk lezen:

  • customer
  • ticket
  • ticket_message
  • ticket_tag
  • ticket_tag_link

In de meeste adminpanelen worden dit labels zoals “Tickets” en “Ticket Messages”, en de join-tabel blijft buiten de weg.

Voor het ticket-lijstscherm kies je veldnamen die duidelijke kolomkoppen en filters worden:

  • subject, status, priority
  • assigned_to_id (wijst naar een staff-user)
  • last_message_at (stuurt sortering op meest recent)
  • created_at (standaard en voorspelbaar)

Enums zijn waar leesbaarheid later vaak stukloopt, dus houd de set stabiel en eenvoudig:

  • ticket_status: new, open, pending_customer, resolved, closed
  • ticket_priority: low, normal, high, urgent

Een naamgevingskeuze die constante verwarring voorkomt: overbelast “customer” niet. In support is de aanmelder niet altijd de klant (een collega kan namens iemand indienen). Als je de persoon opslaat die het ticket heeft ingediend, noem het requester_id, en sla apart customer_id op voor het account waar het ticket over gaat. Dat onderscheid houdt formulieren en filters vanaf dag één waarheidsgetrouw.

Stappenplan: hoe je een nieuw model benoemt voordat je schermen bouwt

Rename without UI drift
Regenerateer je app wanneer namen veranderen zodat UI en API in sync blijven.
Generate App

De makkelijkste manier om schermen leesbaar te houden is dingen te benoemen terwijl je nog in gewoon taaldenken zit, niet wanneer je al aan het bouwen bent.

Een herhaalbaar proces voor elke feature

  1. Begin met een mini-woordenlijst (5 tot 10 termen). Schrijf de woorden die een niet-technische collega in een vergadering zou gebruiken en kies één voorkeurswoord voor elk concept (bijvoorbeeld “customer” vs “client”).

  2. Schets de schermen die je verwacht: lijst, detail, maken, bewerken. Bepaal voor de lijstweergave welke 5 tot 8 kolommen meteen duidelijk moeten zijn als koppen. Als een veldnaam vreemd zou klinken als kop, moet het waarschijnlijk aangepast worden.

  3. Schets tabellen en relaties, en benoem velden met suffix-regels (*_id, *_at, is_*, *_count). Wanneer je later adminschermen genereert (ook in AppMaster), produceren deze patronen meestal nette labels en voorspelbare filters.

Voordat je verdergaat, zorg dat je geen stijlen mixt (customer_id in de ene tabel, clientId in de andere). Consistentie heeft voorrang op cleverheid.

  1. Definieer enums vroeg, niet nadat de eerste UI bestaat. Schrijf één- zin-betekenis voor elke waarde, alsof je het aan support uitlegt. Geef de voorkeur aan waarden die veranderingen overleven, zoals pending, active, archived (niet new, newer, newest).

  2. Doe een “kolomkop-voorleesronde.” Doe alsof je de beheerder bent die een tabel scant.

  • Zouden “Created At”, “Updated At”, “Status”, “Assigned To”, “Total Amount” zinvol zijn zonder training?
  • Voelen velden aan als interne code (tmp_flag, x_type, data1)?
  • Zijn eenheden duidelijk (amount_cents vs amount, duration_seconds vs duration)?

Als iets onduidelijk klinkt om hardop te lezen, hernoem het nu. Hernoemen later is mogelijk, maar het lekt vaak door in rapporten, filters en gewoonten.

Veelgemaakte fouten die adminpanelen moeilijker maken

Als het schema rommelig is, zien de schermen er ook rommelig uit, hoe mooi de UI ook is. Naamgevingsconventies gaan minder over “stijl” en meer over dagelijkse bruikbaarheid.

De eerste val is gemengde woordenschat. Als de ene tabel client zegt en een andere customer, voelen je menu’s, filters en zoekresultaten alsof ze verschillende dingen beschrijven. Kies één woord voor elk kernconcept en gebruik het overal, ook in relatienamen.

Een andere veelvoorkomende fout is te veel inkorten. Afkortingen zoals addr, misc of info besparen een paar tekens maar kosten veel duidelijkheid in tabellen en exports.

Een derde fout is UI-flow in de database bakken. Een veld als new_customer_wizard_step maakt tijdens een lancering zin, maar wordt verwarrend als de flow verandert of je een tweede onboardingpad toevoegt. Sla de zakelijke feitelijkheid op (bijv. onboarding_status) en laat de UI beslissen hoe mensen begeleid worden.

Let ook op boolean-overload. Met is_new, is_open en is_closed krijg je uiteindelijk conflicten (twee true tegelijk) en onduidelijke filters. Geef de voorkeur aan één statusveld met een kleine, goed- benoemde set waarden.

Rode vlaggen die meestal tot lelijke adminschermen leiden:

  • Twee verschillende namen voor hetzelfde ding (client_id op de ene plek, customer_id op een andere)
  • Catch-all kolommen (notes, misc, extra) die gemixte data bevatten
  • Tijdgebonden namen (summer_campaign_*) die langer meegaan dan de campagne
  • Meerdere booleans die één staat proberen te beschrijven
  • Hernoemingen zonder migratieplan

Hernoemen is niet zomaar find-and-replace. Als je customer_phone naar phone_number verandert, plan de migratie, werk gegenereerde schermen bij en behoud backward compatibility waar nodig (vooral als andere systemen de API lezen). In AppMaster betalen schone namen zich direct terug omdat lijsten, formulieren en filters deze labels uit je model overnemen.

Snelle checklist voordat je het adminpaneel uitrolt

Extend admin to mobile
Gebruik hetzelfde duidelijke model om mobiele weergaven te genereren wanneer je team onderweg admin nodig heeft.
Create Mobile App

Voordat je het schema “af” noemt, loop het na vanuit het perspectief van iemand die dagelijks in het adminpaneel werkt.

  • Tabellen klinken als echte dingen. Een collega moet kunnen zeggen wat een tabel voorstelt (ticket, customer, invoice) zonder te gokken.
  • Belangrijke velden volgen voorspelbare suffixen. Gebruik patronen die mensen in één oogopslag herkennen: *_id voor referenties, *_at voor timestamps, *_amount (of *_amount_cents) voor geld, en is_* voor true/false-vlaggen.
  • Enums zijn stabiel en eenvoudig. Sla waarden op zoals pending, paid, failed in plaats van UI-zinnen die veranderen.
  • Een nieuwe collega kan de bedoeling afleiden. Als de velden zonder helptext in een gegenereerde lijstweergave verschijnen, is de intentie nog steeds duidelijk?
  • Vage woorden zijn verwijderd of specifieker gemaakt. Vervang junk-drawer namen zoals data, value, type of info door concrete termen zoals status, source, category, notes of external_reference.

Als je AppMaster’s Data Designer gebruikt om admin-achtige views uit je schema te genereren, is deze checklist direct praktisch: duidelijke namen worden duidelijke kolommen en filters, en je besteedt minder tijd aan labels corrigeren nadat gebruikers gaan werken.

Volgende stappen: maak van naamgeving een gewoonte (en houd schermen consistent)

Goede naamgeving is geen eenmalige schoonmaak. Het is een kleine routine die je admin-UI leesbaar houdt naarmate het schema groeit.

Begin met één bestaande module en pas de regels alleen toe op de volgende nieuwe tabel die je toevoegt. Dat vermijdt een angstaanjagende herschrijving en geeft je een plek om te oefenen. Als je volgende feature “returns” toevoegt aan een ordersysteem, benoem de tabel, foreign keys en statussen volgens je patronen vanaf dag één en hergebruik die aanpak voor de volgende feature.

Houd een eendelige naamgevingsgids naast waar je schemawerk doet. Houd het kort: hoe je tabellen, primaire sleutels, foreign keys, timestamps en status-enums benoemt. Het doel is snelle beslissingen, niet lange debatten.

Als je met AppMaster bouwt, helpt het om deze patronen in de Data Designer te zetten voordat je UI-schermen aanraakt. Als je tabellen of velden hernoemt, regenerateer de app zodat schermen, API's en logica synchroon blijven in plaats van uit elkaar te drijven.

Een lichte reviewstap voor elke release is meestal genoeg:

  • Lezen tabel- en veldnamen goed als menu-items, kolomkoppen en filters?
  • Zijn statussen en enums duidelijk zonder extra uitleg?
  • Leggen relaties en foreign keys zichzelf uit (geen mysterieuze afkortingen)?
  • Zijn vergelijkbare modellen consistent benoemd (zelfde woorden, zelfde volgorde)?

Na verloop van tijd is de echte winst consistentie. Wanneer elk nieuw model dezelfde regels volgt, beginnen je adminpanelen ontworpen te lijken, zelfs wanneer ze gegenereerd zijn, omdat labels en lijsten als een samenhangend product lezen.

FAQ

Waarom beïnvloeden databasenaamgevingen hoe een adminpaneel eruitziet en aanvoelt?

Gebruik namen die lezen als wat het record is, niet wat het doet. Een tabel ticket of invoice wordt een duidelijk menu-item, terwijl iets als processing verwarrend wordt wanneer de workflow verandert.

Moeten we snake_case of camelCase gebruiken voor tabellen en kolommen?

Kies één stijl en houd je daar overal aan. Voor de meeste databases is snake_case het makkelijkst te scannen en voorkomt het dat gegenereerde labels en filters willekeurig aanvoelen.

Hoe beslissen we wanneer afkortingen oké zijn?

Gebruik standaard volledige, duidelijke woorden, omdat die kolomkoppen en filterlabels worden. Afkortingen zoals acct of addr1 zorgen meestal voor twijfel bij operators, ook al begrijpen ontwikkelaars ze.

Moeten tabelnamen enkelvoud of meervoud zijn?

Kies één aanpak en wees consequent: ofwel enkelvoud (ticket) of meervoud (tickets). Het belangrijkste is dat navigatie en paginatitels niet tussen stijlen wisselen in verschillende modules.

Wat is een eenvoudige regel voor primaire sleutels en foreign keys?

Hou één saaie regel aan: de primaire sleutel van elke tabel heet id, en foreign keys zijn iets_id. Dat maakt relaties voorspelbaar en helpt gegenereerde formulieren en referentievelden consistent te tonen.

Hoe noemen we many-to-many join-tabellen zodat de UI leesbaar blijft?

Noem pure join-tabellen naar beide entiteiten in een consistente volgorde, zoals user_role of product_tag. Als de relatie eigen velden en betekenis heeft, geef het een zelfstandignaam zoals membership of assignment zodat de UI natuurlijk leest.

Welke veldnaamgeving geeft schone kolommen en filters?

Gebruik voorspelbare suffixen die overeenkomen met het datatype en de bedoeling, zoals _at voor timestamps en _count voor tellers. Voor booleans geef je de voorkeur aan is_ en has_ zodat checkboxen als duidelijke zinnen lezen in gegenereerde schermen.

Is het beter om één status-enum te gebruiken of meerdere booleaanse vlaggen?

Geef de voorkeur aan één duidelijk statusveld voor de hoofdlevenscyclus, zoals ticket_status of invoice_status, in plaats van meerdere overlappende booleans. Houd opgeslagen waarden stabiel en eenvoudig zodat je de weergavetekst later kunt veranderen zonder data te migreren.

Hoe noemen we meerdere relaties naar dezelfde tabel zonder verwarring?

Gebruik geen generieke namen zoals owner_id of type wanneer ze verschillende dingen betekenen. Gebruik rol-specifieke namen zoals created_by_user_id, approved_by_user_id of payment_method zodat schermen en filters zichzelf verklaren.

Wanneer moeten we een tabel of kolom hernoemen en hoe voorkomen we dat we dingen in AppMaster kapot maken?

Hernoem vroeg, voordat schermen, filters en rapporten afhankelijk zijn van de oude naamgeving. In AppMaster werk je de namen bij in de Data Designer en regenerateer je, zodat de UI en API in lijn blijven en niet uit elkaar groeien.

Gemakkelijk te starten
Maak iets geweldigs

Experimenteer met AppMaster met gratis abonnement.
Als je er klaar voor bent, kun je het juiste abonnement kiezen.

Aan de slag