Veel jeugdgezondheidsinstellingen in Nederland gebruiken ons elektronisch kinddossier. Dat begon ooit met een dossier alleen voor de gegevens van kinderen. Tegenwoordig zijn alle jeugdgezondheidsinstellingen wettelijk verplicht om ook gegevens van ouders registreren, zoals prenatale vaccinaties. Hiervoor hebben we een nieuwe oplossing gerealiseerd. Omdat we het vanaf scratch konden bouwen hadden we de mogelijkheid om de kennis die we door de jaren heen opgedaan hebben, toe te passen op de nieuwe oplossing. Documenten waren daarbij een logischere manier om registraties binnen het dossier op te slaan. Registraties liggen in de echte wereld nou eenmaal dichterbij documenten dan relationele tabellen. Mijn tip: overweeg MongoDB (Atlas) als database om de registratiegegevens van een dossiersysteem in op te slaan.
In veel van onze huidige oplossingen gebruiken we een relationele database, zo ook voor het kinddossier. Maar we weten dat dit nu niet meer de optimale manier is om registraties in op te slaan. We wilden dat dus niet één-op-één overnemen in de nieuwe oplossing. Uiteindelijk kwamen we uit op MongoDB, een document-based database. MongoDB stelt ons in staat om gegevens op te slaan in documenten, in plaats van in rijen en kolommen, zoals bij traditionele relationele databases. Dit geeft ons meer flexibiliteit in hoe we onze data benaderen. Waardoor het ontwikkelen van complexe systemen uiteindelijk gemakkelijker én sneller gaat. Daarnaast communiceren we in de front-end en back-end al heel veel middels JSON, dus waarom niet in de database?
Nog iets meer in detail: het voordeel van een document database is dat het flexibeler is dan een relationele database. Er hoeft namelijk geen, of in mindere mate, een vaste structuur gedefinieerd te worden. Dit maakt het gemakkelijker om gegevens op te slaan die niet goed passen in een vaste structuur, zoals ongestructureerde data of data die regelmatig verandert. Of bijvoorbeeld wanneer de structuur van gegevens in de tijd niet mee hoeven veranderen. De wens voorafgaand aan dit project was om in het dossiersysteem een Google zoekachtige-functionaliteit in te bouwen. Door MongoDB Atlas Search is dat uiteindelijk mogelijk gemaakt. Die gaf in een milliseconde enorm veel resultaat!
Dit betekent overigens niet dat MongoDB altijd dé beste oplossing is. Het is natuurlijk afhankelijk van de user case, maar wanneer je data in de echte wereld dichterbij documenten ligt dan tabellen, kan het een goede oplossing zijn. Daarnaast schaalt het geweldig. Het blijft nog steeds belangrijk om een tool te kiezen die het best past bij jouw ontwikkelproces. Je moet altijd open blijven staan voor nieuwe oplossingen en je niet té vast blijven houden aan ‘gewoontes’. Een veelvoorkomende valkuil bij het gebruik van MongoDB is namelijk om te blijven hangen in bestaande patronen en niet open te staan voor de beste manier om iets te doen.
Ik zou daarnaast iedereen aanraden om vooral MongoDB Atlas te gebruiken; de managed cloud oplossing. Het biedt namelijk functionaliteiten die je als ontwikkelaar enorm (veel) tijd kunnen besparen. MongoDB Atlas is een volledig beheerde clouddatabaseservice waardoor zij zorgen voor alle operationele dingen, die je anders als ontwikkelaar met de hand moet doen. Verder is het goed om te blijven onthouden dat MongoDB niet voor alle user cases geschikt is.
Dus: zorg dat je de basisprincipes en valkuilen van MongoDB kent. En vergeet niet om te blijven experimenteren met nieuwe oplossingen!
Benieuwd naar andere codekrakers? Je checkt ze hier.