Identifizieren von Zugriffsmustern für Apps

Abgeschlossen

Beim Entwerfen eines Datenmodells für eine NoSQL-Datenbank besteht das Ziel darin, sicherzustellen, dass Vorgänge für Daten mit den wenigsten Anforderungen ausgeführt werden. Damit dies gelingt, muss klar sein, welche Beziehungen zwischen den Daten bestehen und wie die Anwendung auf die Daten zugreift. Diese Zugriffsmuster sind wichtig, da sie zusammen mit den Beziehungen bestimmen, wie die Eigenschaften der verschiedenen Entitäten gruppiert und in Dokumenten innerhalb von Containern in Azure Cosmos DB for NoSQL gespeichert werden.

In Azure Cosmos DB for NoSQL werden Dokumente als Elemente bezeichnet, während Container häufig synonym als Sammlungen bezeichnet werden.

Identifizieren von Zugriffsmustern für Kundenentitäten

Als Erstes werden die Kundenentitäten beschrieben, die in der E-Commerce-Datenbank angelegt sind. Die folgende Abbildung zeigt drei Entitäten und die Beziehungen zwischen ihnen. Die drei Entitäten sind Customer, CustomerAddress und CustomerPassword. Die Entität Customer verfügt über eine 1:n-Beziehung zu CustomerAddress. Customer hat eine 1:1-Beziehung zu CustomerPassword.

Abbildung des relationalen Modells für Kundenentitäten

In unserer Anwendung führen wir drei Vorgänge für die Kundenentitäten aus:

  • Erstellen eines Kunden: Wenn ein neuer Benutzer die E-Commerce-Website zum ersten Mal besucht, wird ein neuer Kunde erstellt.
  • Aktualisieren eines Kunden: Wenn ein vorhandener Benutzer seine Profilinformationen aktualisiert, wird sein Kundendatensatz entsprechend aktualisiert.
  • Abrufen eines Kunden: Wenn ein vorhandener Benutzer die Website besucht, meldet er sich mit seinem Kennwort an. Während derselben Sitzung muss der Benutzer auf andere Kundendaten (z. B. auf die Adresse) zugreifen, um neue Artikel zu kaufen.

Für jeden dieser Vorgänge werden all diese Daten gleichzeitig benötigt. Sie könnten als separate Dokumente modelliert werden, aber dann wären zum Erstellen, Aktualisieren und Abrufen der Kundendaten mehrere Roundtrips zum Server erforderlich. Dies ist ineffizient.

Modellieren von Kundenentitäten

In Azure Cosmos DB werden Daten im JSON-Format gespeichert, sodass sich die 1:n-Beziehung zwischen Customer und CustomerAddress modellieren lässt und sich die Kundenadressdaten als Array einbetten lassen. Die 1:1-Beziehung zwischen Customer und CustomerPassword kann als Objekt in das neue einzelne Kundendokument eingebettet werden. Anschließend können von der E-Commerce-Anwendung Kundendaten im Rahmen einer einzigen Anforderung erstellt, bearbeitet oder abgerufen werden.

Die folgende Abbildung zeigt, wie die Kundenentität aussieht.

Abbildung des modellierten Kundendokuments