Identifiera åtkomstmönster för din app

Slutförd

När du utformar en datamodell för en NoSQL-databas är målet att säkerställa att åtgärder på data utförs i minst antal begäranden. För att göra detta måste du förstå relationerna mellan data och hur data kommer att nås av programmet. Dessa åtkomstmönster är viktiga eftersom de tillsammans med relationerna avgör hur egenskaperna för de olika entiteterna grupperas tillsammans och lagras i dokument i containrar i Azure Cosmos DB för NoSQL-databaser.

I Azure Cosmos DB för NoSQL kallas dokument objekt och containrar kallas ofta synonymt för samlingar.

Identifiera åtkomstmönster för kundentiteter

Vi börjar med kundentiteterna i vår e-handelsdatabas. Följande diagram visar tre entiteter och relationerna mellan dem. De tre entiteterna är Customer, CustomerAddress och CustomerPassword. Kundentiteten har en 1:Många-relation till CustomerAddress. Kunden har en 1:1-relation till CustomerPassword.

Diagram that shows the relational model for customer entities.

I vårt program utför vi tre åtgärder på kundentiteterna:

  • Skapa en kund: När en ny användare först besöker e-handelswebbplatsen skapas en ny kund.
  • Uppdatera en kund: När en befintlig användare uppdaterar sin profilinformation uppdateras deras kundpost.
  • Hämta en kund: När en befintlig användare besöker webbplatsen loggar de in med sitt lösenord. Under samma session måste de komma åt andra kunddata (till exempel adress) för att köpa nya objekt.

För var och en av dessa åtgärder behöver vi alla dessa data samtidigt. Dessa entiteter kan modelleras som separata dokument, men det skulle kräva flera turer till servern för att skapa, uppdatera och hämta kunddata.

Modellera kundentiteter

Azure Cosmos DB lagrar data som JSON, så vi kan modellera 1:Många-relationen mellan kund och kundAdress och bädda in kundadressdata som en matris. För 1:1-relationen mellan kund och CustomerPassword kan vi bädda in den som ett objekt i vårt nya dokument för enskilda kunder. Sedan kan e-handelsprogrammet skapa, redigera eller hämta kunddata i en enda begäran.

Följande diagram visar hur vår kundentitet ser ut.

Diagram that shows a modeled customer document.