Zum Inhalt springen

Expertenfrage: Verknüpfte doppelte n:m Beziehung


DrDreist

Empfohlene Beiträge

Hallo zusammen,

ich hab folgendes Problem und zerbrech mir schon seit Stunden den Kopf. Es geht um folgendes Datenbankdesign.

Ich hab folgende Tabellen (vereinfacht):

  1. Kategorien
  2. Objekte
  3. Eigenschaften (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".

  • Objekt
    • Name: Objekt X

    [*]Kategorie

    • Name: Kategorie A
    • Eigenschaften
      • Preis
      • Größe
      • Struktur

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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.

Link zu diesem Kommentar
Auf anderen Seiten teilen

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.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...