Identificar padrões de acesso para seu aplicativo

Concluído

Ao projetar um modelo de dados para um banco de dados NoSQL, o objetivo é garantir que as operações nos dados sejam feitas no menor número de solicitações. Para fazer isso, você precisa entender as relações entre os dados e como os dados serão acessados pelo aplicativo. Esses padrões de acesso são importantes porque, juntamente com as relações, determinarão como as propriedades das várias entidades são agrupadas e armazenadas em documentos dentro de contêineres em bancos de dados do Azure Cosmos DB para NoSQL.

No Azure Cosmos DB para NoSQL, os documentos são chamados de Itens e os contêineres geralmente são chamados de coleções.

Identificar padrões de acesso para entidades de clientes

Comecemos pelas entidades clientes na nossa base de dados de e-commerce. O diagrama a seguir mostra três entidades e as relações entre elas. As três entidades são Customer, CustomerAddress e CustomerPassword. A entidade Customer tem uma relação 1:Many com CustomerAddress. O cliente tem uma relação 1:1 com CustomerPassword.

Diagram that shows the relational model for customer entities.

Na nossa aplicação, iremos realizar três operações nas entidades clientes:

  • Criar um cliente: Quando um novo usuário visita o site de comércio eletrônico pela primeira vez, um novo cliente será criado.
  • Atualizar um cliente: quando um usuário existente atualiza suas informações de perfil, seu registro de cliente será atualizado.
  • Recuperar um cliente: quando um usuário existente visita o site, ele entra com sua senha. Durante essa mesma sessão, eles precisarão acessar outros dados do cliente (como endereço) para comprar novos itens.

Para cada uma dessas operações, precisamos de todos esses dados ao mesmo tempo. Essas entidades podem ser modeladas como documentos separados, mas seriam necessárias várias viagens de ida e volta ao servidor para criar, atualizar e recuperar os dados do cliente.

Modelo de entidades de clientes

O Azure Cosmos DB armazena dados como JSON, para que possamos modelar a relação 1:Many entre Customer e CustomerAddress e incorporar os dados de endereço do cliente como uma matriz. Para a relação 1:1 entre Customer e CustomerPassword, podemos incorporá-la como um objeto em nosso novo documento único do cliente. Em seguida, o aplicativo de comércio eletrônico pode criar, editar ou recuperar dados do cliente em uma única solicitação.

O diagrama a seguir mostra como é a nossa entidade cliente.

Diagram that shows a modeled customer document.