Identificar padrões de acesso para seu aplicativo

Concluído

Na criação de um modelo de dados para um banco de dados NoSQL, o objetivo é garantir que as operações nos dados sejam feitas em menos 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 eles, 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 no Azure Cosmos DB for NoSQL.

No Azure Cosmos DB for 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 cliente

Vamos começar com as entidades de cliente no banco de dados de comércio eletrônico. 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 de um para muitos com CustomerAddress. Customer tem uma relação de um para um com CustomerPassword.

Diagrama que mostra o modelo relacional para entidades de cliente.

Em nosso aplicativo, realizaremos três operações nas entidades Customer:

  • Criar um cliente: quando um novo usuário visitar o site de comércio eletrônico pela primeira vez, um cliente será criado.
  • Atualizar um cliente: quando um usuário existente atualizar as informações de perfil, o registro de cliente dele será atualizado.
  • Recuperar um cliente: quando um usuário existente visitar o site, ele entrará com a respectiva senha. Durante a mesma sessão, ele precisará acessar outros dados do cliente (como o endereço) para comprar novos itens.

Para cada uma dessas operações, precisamos de todos esses dados ao mesmo tempo. Se forem modelados como documentos separados, isso exigirá várias idas e voltas ao servidor para criar, atualizar e recuperar os dados do cliente. Isso é ineficiente.

Modelar entidades de cliente

O Azure Cosmos DB armazena dados como JSON, de modo que possamos modelar a relação de um para muitos entre Customer e CustomerAddress e inserir os dados de endereço do cliente como uma matriz. Para a relação de um para um entre Customer e CustomerPassword, podemos inseri-la como um objeto no novo documento de cliente individual. Em seguida, o aplicativo de comércio eletrônico pode criar, editar ou recuperar os dados do cliente em uma só solicitação.

O diagrama a seguir mostra a aparência da entidade customer.

Diagrama que mostra um documento de cliente modelado.