Дизайнът на базата данни трябва да следва от по-общмодел за проектиране на информация извлечен отконцептуален информационен модел , за предпочитане под формата на UML клас диаграми (поради тяхната изразителност). Следва концептуален информационен модел за вашия проблем:
Такъв модел все още трябва да бъде обогатен с подходящи стандартни атрибути на идентификатор и типове данни за получаване на модел на информационен дизайн. Чрез елиминиране на асоциациите и композициите (заменяйки ги с референтни свойства), получаваме следния модел OO клас, който може да се използва като основа за кодиране на Java/C#/PHP/и т.н. класове:
Забележете, че сме добавили поддръжка за многоезични тестове в този модел на OO клас чрез добавяне на IsoLanguageCode
изброяване и TextItem
клас с първичен ключ от две части, състоящ се от идентификатор на текстова единица и езиков код, така че викторините, въпросите и опциите за отговор използват идентификатор на текстовия елемент за препращане към текстовите елементи, използвани като тяхното заглавие, текст на въпрос и текст на отговор. Забележете също, че Quiz
клас има производно свойство \availableLanguages
които могат да бъдат изчислени с помощта на заявка, извличаща всички езици, за които са налични текстови елементи за всички въпроси от теста и всички техни опции за отговор.
Модел за проектиране на база данни на SQL може да бъде извлечен от такъв модел на OO клас чрез замяна на референтните свойства със съответните атрибути на външен ключ: