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 os relacionamentos, determinarão como as propriedades das várias entidades são agrupadas e armazenadas em documentos dentro de contêineres no 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.

Diagrama que mostra o modelo relacional para entidades de clientes.

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. Se eles fossem modelados como documentos separados, seriam necessárias várias viagens de ida e volta ao servidor para criar, atualizar e recuperar os dados do cliente. Isto é ineficiente.

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.

Diagrama que mostra um documento do cliente modelado.