ChrisB: Nochmal eine Frage zur Normalisierung

Beitrag lesen

Hi,

Außer Schlagwörtern, sind für die Bilder noch weitere Informationen gespeichert. Z.B. ob ein Bild öffentlich oder privat ist, der Titel, wie groß es ist (Auflösung) und das Uploaddatum. Welche dieser Werte sollte ich direkt in die Tabelle mit den Bildern speichern und für welche soll ich eine neue Tabelle und eine Verknüpfungstabelle erstellen?

Wie Horst schon sagte, man *kann* Normalisierung so weit treiben, dass bspw. auch Werte wie die Bildgroesse in eine extra Tabelle ausgelagert werden. Die koennte in einer extra Tabelle liegen, bspw. ein Datensatz mit Bildgroessen-ID #4711, Breite 2048 und Hoehe 1200 Pixel o.ae.
Und bei einem Bild dieser Groesse wird dann im Bilddatensatz nur noch auf die Bildgroessen-ID #4711 referenziert.

*Koennte* man machen, waere in der Praxis aber in aller Regel uebertrieben.

Deshalb wuerde ich Titel, Status (oeffentlich/privat) und Bildgroesse direkt am Bilddatensatz ablegen.
Fuer den Status koennte man ein Feld vom Typ ENUM waehlen (bei MySQL, sonst etwas entsprechendes).

Und für das Uploaddatum auch nicht, oder?

Nee, auch eher nicht. (Aber natuerlich einen der Datumstypen, den die DB bereitstellt, dafuer nehmen - nicht auf die Idee kommen, das einfach als Textliteral (VARCHAR o.ae.) abzulegen.)

Den Wikipediaartikel über Normalisierung habe ich gelesen, der hat meine Frage aber nicht beantwortet.

Dann weisst du also schon mal, dass man zwischen verschiedenen "Graden" von Normalisierung unterscheidet, und in der Praxis idR. bis zur dritten Normalform, 3NF, geht.
Abweichungen davon, auch teilweise fuer einzelne Eigenschaften, sind natuerlich immer denkbar - wenn man sie ausreichend gut begruenden kann.
Normalisierung sollte kein Selbstzweck sein und damit "auf Teufel komm raus" erfolgen - siehe, oben, *koennte* man fuer die Bildmasze auch machen, duerfte in der Praxis aber eher weniger sinnvoll sein.

Manchmal weicht man auch gerade aus Performance-Gruenden bewusst von 3NF ab. Flickr z.B. speichert die Tags seiner Bilder IIRC *nicht* derartig normalisiert, weil's bei dem Datenumfang einfach nicht mehr performant genug waere, dafuer immer in extra Tabellen nachschauen zu muessen, beim Suchen etc. (Irgendwo im Netz kursiert ein PDF, welches den Aufbau der Datenstruktur von Flickr beschreibt; ich hab's nur gerade nicht als Bookmark ...)

MfG ChrisB