TobiasBuschi: design-problem (meta-eigenschaften)

Hallo allerseits,

Ich will Eigenschaften von Dateien in einer Datenbank speichern.

  • name
  • grösse
  • mime-type

Jetzt mein Problem:
Abhängig vom Mime-type gibt es zusätzliche Eigenschaften, die aber nur auf den Mime-type zutreffen z.B.

image/jpeg:

  • länge
  • breite

oder:
audio/mp3

  • dauer
  • qualität

Wie bilde ich das in einer Datenbank ab?

Soll ich zusätzliche Tabellen für jeden mimetype erstellen und den Fremdschlüssel der Datei dort speichern.

Oder alle Eigenschaften in der Tabelle der Datei, auch wenn dann viele Eigenschaften nicht benötigt werden.

Oder sonst irgendwie?

Gibt es da einen Standard?

mfg Tobias Buschor

  1. Hi,

    Wie bilde ich das in einer Datenbank ab?

    dafür gibt es keine Standardlösung. Eine wäre diese:

    Soll ich zusätzliche Tabellen für jeden mimetype erstellen und den Fremdschlüssel der Datei dort speichern.

    Eine andere wäre _eine_ Zusatztabelle mit Name/Value-Pairs.

    Oder alle Eigenschaften in der Tabelle der Datei, auch wenn dann viele Eigenschaften nicht benötigt werden.

    Dies würde ich nicht empfehlen. Wenn, dann speichere eine Anzahl Referenzen auf Fremdtabellen; aber auch das bedeutet, bei einem weiteren MIME-Type das Layout dieser Tabelle anzupassen, was zu vermeiden vorteilhaft wäre.

    Cheatah

    --
    X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
    X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
    X-Will-Answer-Email: No
    X-Please-Search-Archive-First: Absolutely Yes
    1. dafür gibt es keine Standardlösung.

      Wie machen das denn die "Grossen"?
      Es ja Datenbanken-Systeme, die  das Dateisystem abbilden/simulieren um schnell nach Dateien suchen zu können.

      1. Hi,

        dafür gibt es keine Standardlösung.
        Wie machen das denn die "Grossen"?

        individuell. Es gibt auch bei den "Großen" keine Standardlösung.

        Cheatah

        --
        X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
        X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
        X-Will-Answer-Email: No
        X-Please-Search-Archive-First: Absolutely Yes
  2. Hello,

    Wie bilde ich das in einer Datenbank ab?

    Eine Tabelle mit dem Objekt
    Eine Tabelle mit der Eigenschaftsart
    Eine Tabelle mit den Eigenschaften *)
    Eine Tabelle mit den zulässigen/vorgeschriebenen Eigenschaften pro Eigenschaftsart

    *) eigentlich stößt man hier auf ein Grundproblem der Datenbankdarstellung:
       Variante Eigenschaftstypen
       Die Eigenschaften können unteschiedliche Datentypen (Spaltentypen) haben und müssten daher
       nach ihren Typen in einzelne Tabellen aufgelöst werden.
       In der Tabelle 'zulässige Eigenschaften' steht dann daher auch der Verweis auf die
       eigentliche Typen-Tabelle und in 'Eigenschaften' nur ein Verweis in diese Tabelle.

    Mit MySQL habe ich ein solches Modell bisher noch nicht hinbekommen.

    Da muss man dann ggf. ersatzweise mit Varianten Datentypen arbeiten und nach dem Holen der Daten eine Typzuweisung vornehmen, wie sie in Tabelle 'zulässige Eigenschaften' vermerkt ist.

    Harzliche Grüße aus http://www.annerschbarrich.de

    Tom

    --
    Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
    Nur selber lernen macht schlau