DrDreist Geschrieben 14. Februar 2011 Teilen 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 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
flashpixx Geschrieben 14. Februar 2011 Teilen 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. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.