Aloha ;)
sorry, hatte wohl Knöpfe auf den Augen. Klar - binäre Terme kann man als binären Baum aufbauen und per SQL rekursiv zusammensuchen.
Ja. Ich sagte ja auch bereits, dass mein Vorschlag halt eine Möglichkeit ist, das darzustellen, dass ich mir aber nicht sicher bin, ob das Datenmodell für eine relationale Datenbank optimal ist. Die Rekursion ist ein negativer Aspekt (denn SQL-Auswertung geht damit nicht), und...
Dagegen steht dann alternativ mein Vorschlag mit der DNF und einem n-ären zweistufigen Baum, der sich ohne Rekursion auslesen lässt.
...dein DNF-Vorschlag ist sicher besser für die relationale Datenbank optimiert. Mir leuchtet dein Vorschlag daher total ein.
Problematisch dabei ist, aber das schriebst du ja selbst, dass es ggf. ein größerer Aufwand ist, die DNF zu finden, bzw. das für einen allgemeinen Fall zu implementieren.
Man muss da halt abwägen: Möchte man die Abbildung mit Rekursion, die beim Auslesen / Anwenden nicht alleine mit SQL funktioniert, sondern beim Auslesen ein rekursives Vorgehen benötigt, oder möchte man die rekursionsfreie Abbildung, die beim Speichervorgang / Implementieren einen großen Aufwand bedeutet.
Kommt es nicht so sehr auf die Performance beim Auslesen an, z.B. weil man das nicht so häufig prüfen muss, würde ich meine Idee bevorzugen - weil sie so schön einfach und nah an der intuitiven Überlegung ist.
Kommt es hingegen auf die Performance beim Auslesen an, z.B. weil man das häufig prüfen muss, ist deine Idee zu bevorzugen - denn sie erfordert beim Implementieren Aufwand und Umgehen (du hast die Idee zwar umrissen, aber bis zum konkreten Algorithmus ist es noch ein gewisser Weg), ist aber in der Anwendung der gespeicherten Regeln sehr effizient.
Letztendlich hast Du ja nur eine Klammer mehr gesetzt (und dich bei KursD vertippt 😉)
Ups. 😀
TL;DR: Mir gefällt deine Lösung vom fachlichen Standpunkt sehr gut. Sie ist gut optimiert und deutlich sauberer / systematischer als meine. Implementieren würd ich sie aber nicht unbedingt wollen 😀
Grüße,
RIDER