Ein solcher Ausdruck ist ein Baum. Ihr Beispiel, ausgedrückt als Baum ist
=
c
+
a
*
b
d
Die Blätter des Baumes sind die primitiven Symbole a, b, ..., während die Wurzeln der (sub) Bäume sind die Betreiber.
Eine einfache Struktur relationale Datenbank solche Bäume sind
node(id, operator, left_component_id, right_component_id, primitive)
wo im Fall einer Teilstruktur die Betreiber und die Fremdschlüssel für die Komponenten Knoten gefüllt werden darstellen, während bei einem primitiven, Das letzte Attribut wird gefüllt.
Wenn die Anzahl der Argumente Ihrer Operatoren hoch oder sogar unbegrenzt ist, wird das Schema komplizierter. Sie benötigen eine separate Tabelle
argument(id, node_id, position, component_id)
, die die Argumente des referenzierten Knotens enthält.
Diese Schemata bieten Ihnen die volle Leistung relationaler Datenbanken. Z. B. können Sie abfragen, wie viele Ihrer Ausdrücke "a" als erstes Argument haben. Auf der anderen Seite wird ein einfacher Ausdruck auf so viele Datenbankdatensätze verteilt. Wenn Sie die Mechanismen der Datenbank nicht benötigen, um die innere Struktur Ihrer Ausdrücke zu überprüfen, können Sie den gesamten Ausdruck als Zeichenfolge in einem einzigen Datensatz speichern.
Vielen Dank für die Details. –