Wolfram Language

Mit verknüpften Tabellen arbeiten

Dieses Beispiel zeigt eine sehr leistungsfähige Methode, die es Ihnen ermöglicht, eine Tabelle mit einer anderen zu verknüpfen, ohne auf JOIN-Anweisungen zurückgreifen zu müssen. Die Technik wird jedem, der schon einmal Entitäten verwendet hat, vertraut vorkommen, da sie sich auf das einfache Konzept der entitätsbasierten Eigenschaften stützt.

Die meisten relationalen Datenbanken enthalten Fremdschlüssel. Wenn einige der Spalten einer Tabelle als Fremdschlüssel gekennzeichnet sind, verweisen sie auf den Primärschlüssel einer anderen Tabelle und stellen so eine Verbindung zwischen zwei Tabellen her. Beispielsweise kann eine Tabelle von Bestellungen Fremdschlüssel für die Kunden- und Produkttabelle enthalten, anstatt Informationen über diese direkt widerzugeben. Nehmen Sie eine typische Datenbank mit einer umfangreichen Struktur.

Die Struktur von Tabellen, die über Fremdschlüssel verknüpft sind, kann als Grafik visualisiert werden.

Beim Aufbau des zur RelationalDatabase passenden EntityStore werden einige spezielle Eigenschaften aus den Fremdschlüsseln aufgebaut, wobei die Struktur von Tabellen, die über Fremdschlüssel verbunden sind, als Grafik visualisiert werden kann.

Sehen Sie sich die Bestellungen der Entitätstypen an: Der Fremdschlüssel "customerNumber" verweist auf die Tabelle "customers". Das Framework erkennt das automatisch und erstellt eine neue Eigenschaft namens "customers" (unterstrichen in Übersichtsboxen), die Entity-Objekte zurückgibt. Auf diese Weise gibt es für jede "orders"-Entität eine zugehörige "customers"-Entität. Registrieren Sie den EntityStore, um dies zu überprüfen.

Jetzt können Sie EntityValue mit einer Entität vom Typ "orders" aufrufen.

Die Tabelle "orders" ist das Ziel eines Fremdschlüssels aus den Tabellen "orderdetails". Dadurch kann das Framework ein inverses Mapping aus der Tabelle "orderdetails" zu erstellen, was dazu führt, dass der Typ "orders" eine Eigenschaft namens "orderdetails" hat, die EntityClass-Werte übernimmt.

Der große Vorteil dieser symbolischen Wrapper um Fremdschlüssel ist, dass man die Extraktion von Eigenschaften in EntityFunction verketten kann. Gehen Sie beispielsweise von einer Kunden-Entität aus und überprüfen Sie, wer ihr Vertriebsmitarbeiter ist und wer der direkte Vorgesetzte dieses Mitarbeiters ist.

Dies erscheint jedem, der mit der Wolfram Language vertraut ist, sehr logisch, aber es ist sehr kompliziert, die Abfrage ohne diese besonderen Eigenschaften zu machen. Was man normalerweise tun würde, ist, sich das in Form von JOIN-Anweisungen vorzustellen.

Ein weiterer wesentlicher Vorteil der Verwendung verknüpfter Tabellen ist, dass diese auch für Aggregationen eingesetzt werden können, ohne in Form von Queries zu denken. Dies ist beispielsweise der Gesamtwert einer Bestellung:

Die äquivalente Abfrage in Bezug auf Aggregationen wäre wie folgt gewesen.

Verwandte Beispiele

en es fr ja ko pt-br zh