Ga naar hoofdinhoud

Datamodel op hoofdlijnen

Geen volledige tabellenlijst, maar de conceptuele structuur: welke entiteiten bestaan er en hoe hangen ze samen. Het schema telt 162 tabellen in het public-schema, en op elke daarvan staat rijbeveiliging aan.

De lagen​

Tenantlaag. Een tenant is een organisatie of adviesbureau met een eigen afgeschermde omgeving, eigen huisstijl en eigen configuratie. Een gebruiker is lid van een of meer tenants, met per tenant een rol; wie aan een canvas meewerkt, heeft daarop een eigen rol (eigenaar, bewerker of lezer), ook zonder lid van de tenant te zijn. Uitnodigingen voor een organisatie en voor een enkel canvas hebben elk een eigen tabel; het lidmaatschap ontstaat pas als de uitgenodigde de uitnodiging accepteert. Elke wijziging in lidmaatschap en deelname wordt als gebeurtenis vastgelegd.

Canvas. De centrale werkeenheid: één opdracht, één klant. Alles wat je invult hangt aan een canvas, dat op zijn beurt aan een tenant hangt. Daaronder vallen de geüploade documenten en de daaruit afgeleide tekstblokken met hun betekenisrepresentatie. Een document heeft versies; per onderdeel dat op een eerdere versie rust, is vastgelegd wat er tussen de versies veranderde.

Werkbladdata. Elk domein — klanten, processen, mensen, IT, verandering, strategie — heeft een eigen set tabellen. De domeinen verschillen wezenlijk, en een eigen opzet per domein maakt elk werkblad sterker. Strategie bevat naast de kern en de thema's ook de meting van digitale volwassenheid, het IT-werkblad plaatst informatiedomeinen in vijf lagen, en bij de werkbladen horen gebeurtenistabellen waarin per voorstel, thema en verbeteractie vastligt wat er wanneer en door wie veranderde. Allemaal volgen ze hetzelfde autorisatiepatroon.

Vermogenslaag. Vermogens, hun clustering, en de gaps tussen huidig en gewenst niveau. Aan een gap hangt bewijs — verwijzingen naar bestaande pijnpunttabellen uit de werkbladen — en dekking in de vorm van initiatieven.

Rapportagelaag. Een rapportdefinitie bevat secties, een sectie bevat blokken. Een tekstblok draagt zowel de gegenereerde als de geredigeerde versie, plus de bronverwijzingen. Elke export wordt bewaard als momentopname.

Ondersteunend. Achtergrondtaken met status en voortgang; verbruiksregistratie per AI-aanroep; een centrale configuratietabel voor labels en prompts; de AI-modelcatalogus met prijzen en instellingen per AI-knop; en de berichten van «Wat is er nieuw», per uitlevering in het Nederlands en het Engels.

Twee ontwerpprincipes​

Bestaande structuren hergebruiken in plaats van dupliceren. De bewijskoppeling van de vermogenslaag verwijst naar de pijnpunttabellen die de werkbladen al vullen. Zo is er één waarheid over wat er misgaat in de organisatie.

Uitsluitend additief uitbreiden. Zowel de vermogenslaag als de rapportage-engine zijn zo ontworpen dat ze bestaande tabellen niet wijzigen, alleen aanvullen. Werkbladen blijven de bron van waarheid; de rapportage leest en schrijft nooit terug. Dat houdt latere wijzigingen goedkoop en het risico op regressies laag.

Eén basis voor het schema​

Het schema is vastgelegd als één basisbestand van 47.108 regels, gemaakt uit productie, met daarna de migraties die erop volgen (op 30 oktober 2026: de basis plus 26). Een lege databank is daarmee in één stap op te bouwen, met de rechten van elke tabel en functie uitgeschreven meegeleverd. De 818 migraties van vóór de basis staan bewaard als archief. Een nieuwe tabel zonder koppeling aan een canvas of gebruiker wordt in een register ingedeeld als platformconfiguratie, klantdata of omgevingsgegeven, en een controle vraagt erom.

Configuratie boven code​

Labels, prompts en methodiekterminologie staan in de database, niet in de code — met een standaardwaarde en een optionele variant per tenant. Daardoor kan een organisatie de eigen taal en het eigen framework voeren zonder dat er een regel code verandert.