Projekt bazy danych powinien opierać się na bardziej ogólnym modelu projektowania informacji wywodzi się z koncepcyjnego modelu informacji , najlepiej w postaci diagramów klas UML (ze względu na ich wyrazistość). Poniżej znajduje się koncepcyjny model informacji dla Twojego problemu:
Taki model nadal musi zostać wzbogacony o odpowiednie standardowe atrybuty identyfikatorów i typy danych w celu uzyskania modelu projektowania informacji. Eliminując asocjacje i kompozycje (zastępując je właściwościami referencyjnymi) otrzymujemy następujący model klasy OO, który może posłużyć jako podstawa do kodowania Java/C#/PHP/etc. zajęcia:
Zauważ, że dodaliśmy obsługę wielojęzycznych quizów w tym modelu klasy OO, dodając IsoLanguageCode
wyliczenie i TextItem
klasy z dwuczęściowym kluczem podstawowym składającym się z identyfikatora elementu tekstowego i kodu języka, tak że quizy, pytania i opcje odpowiedzi używają identyfikatora elementu tekstowego do odwoływania się do elementów tekstowych używanych jako ich tytuł, tekst pytania i tekst odpowiedzi. Zauważ również, że Quiz
klasa ma pochodną właściwość \availableLanguages
które można obliczyć za pomocą zapytania pobierającego wszystkie języki, dla których dostępne są elementy tekstowe dla wszystkich pytań quizu i wszystkie opcje odpowiedzi.
Model projektu bazy danych SQL można wyprowadzić z takiego modelu klasy OO, zastępując właściwości referencyjne odpowiednimi atrybutami klucza obcego: