OMG, ich habe grade einen Alptraum aus dem mich keiner weckt:
Es geht um Dokumente die mehrsprachig in einer DB abgelegt werden: Titel, Name, Dateigröße, Abschnitt (=logische Gruppierung), Abschnittname etc.
- Dokumente haben pro Sprache eine Bezeichnung und einen Dateinamen.
- Dokumente haben eine Größe
- Dokumente haben ein Erstellungsdatum
- Dokumente können gelöscht sein, aber müssen in der DB bleiben
- Es gibt verschiednene Abschnitte (aka Module)
- Dokumente werden Abschnitten zugeordnet
- Module haben pro Sprache genau eine Bezeichnung.
Das "Design" verstößt schon gegen die 1NF (!!!) und sieht so aus: Es wird alles in eine Tabelle geklatscht.
ID, INTEGER
LANGUAGE, CHAR
MODULID, INTEGER
DOC_BEZEICHNUNG, VARCHAR
DOC_FILENAME, VARCHAR
DOC_TYPE, CHAR
DOC_DATE, DATE
DOC_SIZE, CHAR
MODUL_BEZEICHNUNG, VARCHAR
GELOESCHT, CHAR
DATA, BLOB
Leute das macht jeder Schüler besser!!ID, INTEGER
LANGUAGE, CHAR
MODULID, INTEGER
DOC_BEZEICHNUNG, VARCHAR
DOC_FILENAME, VARCHAR
DOC_TYPE, CHAR
DOC_DATE, DATE
DOC_SIZE, CHAR
MODUL_BEZEICHNUNG, VARCHAR
GELOESCHT, CHAR
DATA, BLOB
Der absolute Schenkelklopfer, ist die DOC_SIZE - schaut euch mal den Datentyp an - muahaha - als CHAR. Und es kommt noch besser, der Inhalt sieht z.B. so aus "884 kB", die haben tatsächlich auch noch die Einheit mit in der gleichen Zelle abgelegt *popcornhol*. 1NF verletzt, dass muss man erstmal hinkriegen.
Ach ja 2NF ist natürlich auch gleich verletzt, Schlüssel der Tabelle ist nämlich ID + Sprache. Modulname + Bezeichnung werden redundant gehalten *gnihihii*.
Bin mal weg, Kotztüten sins alle...
Keine Kommentare:
Kommentar veröffentlichen