Postgres, zelf of beheerd
De standaardkeuze voor de meeste webapplicaties: relationeel, breed ondersteund en overal te draaien. Je kunt hem bij vrijwel elke aanbieder onderbrengen en later verhuizen zonder je model te herschrijven.
Bij een eerste versie wordt vaak lang gepraat over welke database het moet worden, terwijl dat zelden de beslissing is die je later opbreekt. Wat je wél vastlegt, is hoe je gegevens zijn gemodelleerd en bij welke partij ze staan. Hieronder waar het verschil zit en waar je op moet letten.
De meeste apps doen dingen die elke database prima aankan.
Een eerste versie slaat gebruikers op, wat records die bij die gebruikers horen en misschien een paar bestanden. Dat is voor elke serieuze database een makkelijke opgave. De prestatieverschillen waar online over geschreven wordt, worden pas merkbaar bij aantallen die je op dat moment nog niet hebt.
Wat wel telt is of je gegevens later te verplaatsen zijn en of je er normaal in kunt kijken. Een database waar je met gangbare hulpmiddelen bij kunt en waar je een dump van kunt maken, houdt je opties open. Een dienst die alleen via zijn eigen interface toegankelijk is, doet dat niet.
De keuze die je wel vastlegt, is hoe je je gegevens structureert. Een model dat niet klopt met hoe je organisatie werkelijk werkt, wreekt zich in elke functie die je daarna bouwt. Daar besteden we op een bouwdag meer aandacht aan dan aan het merk van de database.
Ze verschillen vooral in hoeveel je zelf beheert.
De standaardkeuze voor de meeste webapplicaties: relationeel, breed ondersteund en overal te draaien. Je kunt hem bij vrijwel elke aanbieder onderbrengen en later verhuizen zonder je model te herschrijven.
Je krijgt database, authenticatie, bestandsopslag en een API in één. Dat scheelt opzetwerk en past goed bij een eerste versie. Omdat er een gangbare database onder zit, blijft vertrekken mogelijk.
Gegevens als losse documenten in plaats van tabellen. Prettig als je model nog verandert en je snel wilt schakelen. Zodra je gaat rapporteren over verbanden tussen gegevens, wordt het meer werk dan een relationele database.
Vijf punten die zwaarder wegen dan de naam van het product.
Een ruwe vuistregel die in de meeste gevallen klopt.
We besteden het eerste uur aan het model en daarna is de keuze meestal vanzelfsprekend.
Aan het begin van de dag tekenen we uit welke dingen er in jouw wereld bestaan en hoe ze zich tot elkaar verhouden. Dat gesprek levert vrijwel altijd een correctie op: iets wat je als één ding zag, blijkt er twee, of andersom. Dat is het waardevolste half uur van de dag.
Daarna kiezen we bijna altijd Postgres, meestal via een platform dat er authenticatie en opslag omheen levert. Dat is snel op te zetten, het model is er goed in uit te drukken en je zit nergens aan vast wat je later niet los kunt maken.
Wat we ook doen is meteen een export maken. Aan het eind van de dag heb je niet alleen een werkende app maar ook een bestand met je gegevensstructuur erin. Dat is je verzekering: wat er ook met de dienst gebeurt, je model ben je niet kwijt.
Voor een nieuwe applicatie is Postgres tegenwoordig de gebruikelijke keuze: rijker in mogelijkheden, goed met JSON-velden en breed ondersteund door hostingpartijen. MySQL is prima en je komt het vooral tegen in bestaande omgevingen. Het verschil is voor een eerste versie zelden doorslaggevend.
Nee, het is een andere keuze. Het is snel op te zetten en sterk in realtime bijwerken van schermen. Het wordt lastiger zodra je wilt rapporteren over verbanden tussen gegevens, en het is minder eenvoudig te verlaten dan een gangbare relationele database. Weeg dat af tegen de snelheid die je er nu mee wint.
Kijk dan welke database dat is. Zit er een gangbare relationele database onder waar je een kopie van kunt maken, dan is dat prima. Is het een eigen opslaglaag zonder export, dan zit je gegevensmodel vast aan die tool en dat is een groter probleem dan de rekening.
Nauwelijks. De meeste applicaties komen met een enkele database heel ver, verder dan founders denken. Wat je nu wel doet, is een fatsoenlijk model en een paar verstandige indexen. Schalen is een probleem dat je liever hebt dan niet, en het is oplosbaar wanneer het speelt.
Kies een regio binnen de EU als je met persoonsgegevens werkt, en leg vast welke gegevens waar staan. De meeste aanbieders laten je die regio kiezen bij het aanmaken en niet daarna, dus dat is een beslissing die je aan het begin neemt.
Tussen relationele databases is dat goed te doen, zeker als je model netjes is. Van een documentdatabase naar relationeel is meer werk omdat je structuur moet afdwingen die er nog niet was. Dat is een reden om bij twijfel relationeel te beginnen.
Het eerste uur van een bouwdag gaat over hoe jouw wereld in elkaar zit. Vaak levert dat een correctie op die de rest van het traject makkelijker maakt.
Een korte intake volgt na je inschrijving. Daarna stemmen we scope en datum af.
We nemen contact op om de intake in te plannen.
We gebruiken cookies om je ervaring te verbeteren en het gebruik van de site te meten.