Ich habe Daten über Farben. Einige dieser Farben bestehen aus einer Anzahl von Farben kombiniert. Eine dieser Kombinationen kann theoretisch eine andere kombinierte Farbe sein. Im Fall einer kombinierten Farbe muss ich einige Attribute über die "Kind" -Farben definieren.Könnte diese zirkuläre Datenreferenz besser entworfen werden?
ich meine Datenbank zur Zeit haben wie so definiert:
COLOR
!Id
+MultiColorGroupId
MULTICOLOR
!Id
+MultiColorGroupId
+ColorId
+Type
Diese enthält alle Informationen, kann ich in einem ziemlich klaren Weg brauchen. Das einzige, was ich denke, dass passieren könnte, ist, dass ich einen Zirkelverweis bekomme, wo sich eine Farbe als childColor befindet. Gegenwärtig besteht die einzige Möglichkeit, dies zu erkennen, darin, eine Überprüfung der Einfügung entweder in der Datenbank oder in der Anwendung zu erstellen. Da die Kreisreferenz beliebig tief sein könnte und die aktuelle Struktur möglicherweise ziemlich breit sein könnte, würde ich eine deterministischere Datenstruktur bevorzugen.
Gibt es bessere Möglichkeiten, dies zu definieren?
Offensichtliche Antwort - bauen Sie den Scheck in die Datenbank ein. Vielleicht um die Frage zu erweitern, warum dies keine Option ist? –
K. Bearbeitet OP zur Klarstellung –