DrDreist Geschrieben 14. Februar 2011 Geschrieben 14. Februar 2011 Hallo zusammen, ich hab folgendes Problem und zerbrech mir schon seit Stunden den Kopf. Es geht um folgendes Datenbankdesign. Ich hab folgende Tabellen (vereinfacht): KategorienObjekteEigenschaften (könnte auch Tags sagen) Sie stehen wie folgt in Beziehung: Jede Kategorie hat mehrere Objekte und jedes Objekt eine Kategorie (1:n)Jede Kategorie hat mehrere Eigenschaften und jede Eigenschaft mehrere Kategorien (n:m)Jedes Objekt hat mehrere Eigenschaften definiert aus den Eigenschaften der Kategorie(n:m) Im Klartext, jede Kategorie hat diverse Eigenschaften, die mit Anlegen einer Kategorie festgelgt werden Kategorie_ID | Eigenschaft_ID (Bewegungstabelle) Kategorie A hat zum Beispiel Preis, Größe, Struktur. Kategorie B hat nur Preis und Farbe. So weit ist es nix Besonders und eine einfach n:m Bezeihung :schlaf: Machen wir das ganze mal den Faktor 10 anrpuchsvoller. Ein neu angelegtes Objekt X wird nun der Kategorie A zugewiesen und soll nun dessen Eigenschafen "erben". ObjektName: Objekt X [*]Kategorie Name: Kategorie AEigenschaftenPreisGrößeStruktur Mein Ziel ist es jetzt in einer 5. Tabelle die Werte dafür zu speichern. Objekt_ID - Eigenschaft_ID - Wert Beispiel: Objekt X | 1 | 300€ Objekt X | 2 | Riesig Ich hoffe ich konnte das einigermaßen verständlich ausdrücken. So meine Frage nun: 1. Wie selektiere ich alle Eigenschaften die ein Objekt haben darf in Abhängigkeit der ersten Bewegungstabelle? 2. Ist das ein gutes Datenbankdesign? Mit freundlichen Grüßen
flashpixx Geschrieben 14. Februar 2011 Geschrieben 14. Februar 2011 Wenn ich das richtig verstehe, dann hast Du letztendlich so etwas wie eine Vererbung, d.h. eine Hierarchie. Wir haben ein Objekt P und ein Objekt C, D und F. Wenn jetzt C, D und F von P erben, dann ist das kein Problem, denn diese Objekte haben genau einen Parent, nämlich P. Wenn Du jetzt aber noch zu lässt, dass z.B. C von D erben kann, dann ist das auch eine hierarchiche Beziehung, aber Du musst dabei natürlich verhindern, dass C von D und D von C erben kann. Ich würde mich da generell mal die UML 2 Spezifikation anschauen, da sind nämlich solche Strukturen abgebildet. Das datenbanktechnisch abzubilden ist auch nicht schwer, denn man muss eben nur die Hierarchie mit abbilden und eben diverse Verbindungen nicht zulassen.
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden