Databasedesign bør følge af en mere generel informationsdesignmodel afledt af en konceptuel informationsmodel , fortrinsvis i form af UML-klassediagrammer (på grund af deres udtryksevne). Følgende er en konceptuel informationsmodel for dit problem:
En sådan model skal stadig beriges med passende standardidentifikatorattributter og datatyper for at opnå en informationsdesignmodel. Ved at eliminere associationerne og sammensætningerne (erstatte dem med referenceegenskaber) opnår vi følgende OO klassemodel, som kan bruges som grundlag for kodning af Java/C#/PHP/etc. klasser:
Bemærk, at vi har tilføjet understøttelse af flersprogede quizzer i denne OO-klassemodel ved at tilføje en IsoLanguageCode
enumeration og en TextItem
klasse med en todelt primærnøgle bestående af et tekstelement-id og en sprogkode, således at quizzer, spørgsmål og svarmuligheder bruger et tekstelement-id til at referere til de tekstelementer, der bruges som deres titel, spørgsmålstekst og svartekst. Bemærk også, at Quiz
klasse har en afledt egenskab \availableLanguages
som kan beregnes ved hjælp af en forespørgsel, der henter alle sprog, for hvilke tekstelementer til alle spørgsmål i en quiz og alle deres svarmuligheder er tilgængelige.
En SQL-databasedesignmodel kan udledes af en sådan OO-klassemodel ved at erstatte referenceegenskaberne med tilsvarende fremmednøgleattributter: