Ternäre Beziehungen

DW10_DEV

Newbie
Registriert
Sep. 2021
Beiträge
2
Hallo zusammen,

ich habe zwei Verständnis Fragen, die ich nicht auf die Kette bekomme.

1)
bild1.png

Ich möchte das ein oder mehrere Dokumente einem oder mehreren Produkten hinterlegt werden können.
Genauso möchte ich, das ich ein oder mehrere Dokumente einer Produktgruppe in Abhängigkeit der Marke hinterlegen kann.
Eine Marke sowie Gruppe gibt es nur einmal!

Ich könnte ja jetzt einfach hergehen und sagen da Produkte eh in Gruppen und Marken eingeteilt sind, das ich nur Produkt zu Produktdokument als Beziehung habe.
z.B. Alle Radios die ich auswähle bekommen dieses Dokument. (mehrere Zeilen)
Aber bei dem anderen Weg würde ich ja nur eine Zeile speichern.
z.B. Alle Radios von XY bekommen dieses Dokument. (eine Zeile)
aber dann das Problem, das ich wenn ich jetzt spezielle in einem Produkt bin und mir dieses Dokument angezeigt wird, dieses vielleicht für dieses Produkt ausblenden will. Dann müsste ich ja doch wieder allen Produkten das Dokument hinterlegen und ein Attribut Show oder so.

2)
1632462684439.png


Hier möchte ich das ich allgemeine Fehlermeldungen einer Produktgruppe zuordnen kann aber ein Hersteller auch eigene Fehlermeldungen haben kann die zu einer Produktgruppe zugeordnet werden können.



Gibt es hier eine feste Definition, Vorgehensweise, Best Practice???
 
Vielleicht einfach nicht nur bis drei denken...

Da du mehr als drei Argumente für ein Produkt hast um Dokumente anzuheften.
 
Vielleicht solltest Du die Rahmenbedingungen bzw. das Ziel und daraus entstehende Probleme (genauer) definieren und priorisieren.
Oder anders gesagt: Wo wäre das Problem, alles immer dem jeweiligen Produkt zu zuordnen und ggf. noch für eine Gruppe übergreifende Attribute?
 
Klingt so als ginge es um Datenbanken, oder?

Das klassische Design sind Referenztabellen für die gewünschte Verknüpfung.
Also z.b.
ProduktDokumente enthält die zwei Felder PDOKID und PID.
Wenn ein Dokument einen Produkt zugeordnet wird trägst du die entsprechenden ids einfach in diese Tabelle ein.
Genauso die anderen Beziehungen.


... Oder ich steh gerade auf dem Schlauch und verstehe die Frage komplett falsch.
 
Hi, danke erstmal für eure raschen Antworten.

Oder anders gesagt: Wo wäre das Problem, alles immer dem jeweiligen Produkt zu zuordnen und ggf. noch für eine Gruppe übergreifende Attribute?

bild1.png

Ja so meinst du? Das hatte ich ja oben auch als Ansatz.

Das ist ja dann meine eigentliche Frage, welcher Ansatz hier der richtige ist.

Ein Dokument möchte ich allen Radios von Marke XY zuweisen.
In obiger Ansicht würde ich jetzt vielen Produkten dieses Dokument zuweisen also viele Zeilen.

Wohingegen wenn ich einer Produktgruppe von Marke XY ein Dokument zuweise nur eine Zeile habe.

Achtet man dabei nicht auf Datensparsamkeit?
 
DW10_DEV schrieb:
welcher Ansatz hier der richtige ist.
Der, der funktioniert ;)

Es gibt in der Informatik (fast) nie DIE EINE richtige Antwort.

Du kannst mehrere Relationen erstellen: z.B. Dokument-Produkt, Dokument-Gruppe und Dokument-Marke
Oder eine Relation mit optionalen Parametern für alles: z.B. Dokument-Produkt-Gruppe-Marke
Oder wie bereit's genannt ausschließlich eine Dokument-Produkt Relation.

Je nach Art der Datenbank ist man evtl. sogar gezwungen einen der Wege zu gehen, und hat nicht die Wahl.

Dann kommt's auch noch darauf an wie die Querys aussehen, bzw. ob man seine Datenstruktur dafür optimieren will. Oder ob's eine Aufgabe aus der (Hoch)Schule ist, wo man irgendwelche Normalformen einhalten muss, weil man sonst durchfällt :D
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: mental.dIseASe
DW10_DEV schrieb:
Achtet man dabei nicht auf Datensparsamkeit?

ja und nein ... Denn was ist Datensparsamkeit am Ende ... du bildest ja nur Dokumente ab und dessen Verknüpfungen mit dem Produkten ...

eine Verknüpfung kostet doch wenig Daten.

Aber du musst halt jede Verknüpfung so darstellen das sie eineindeutig ist.
 
Zurück
Oben