Quando incorporar ou referenciar dados

Concluído

Na unidade anterior, incorporamos os dados de endereço e senha do cliente em um novo documento do cliente. Essa ação reduz o número de solicitações, o que melhora o desempenho e reduz os custos. No entanto, nem sempre é possível incorporar dados. Há regras para quando você deve incorporar dados em um documento em vez de fazer referência a ele em uma linha diferente.

Quando você deve incorporar dados?

Incorpore dados em um documento quando os seguintes critérios se aplicarem aos seus dados:

  • Ler ou atualizar em conjunto: os dados lidos ou atualizados em conjunto são quase sempre modelados como um único documento. Isto é especialmente verdadeiro porque o nosso objetivo para o nosso modelo NoSQL é reduzir o número de solicitações para o nosso banco de dados. Em nosso cenário, todas as entidades do cliente são lidas ou escritas juntas.
  • Relação 1:1: Por exemplo, Customer e CustomerPassword têm uma relação 1:1.
  • 1:Poucos relacionamentos: Em um banco de dados NoSQL, é necessário distinguir 1:Muitos relacionamentos como limitados ou não limitados. Customer e CustomerAddress têm um relacionamento limitado de 1:Many porque os clientes em um aplicativo de comércio eletrônico normalmente têm apenas um punhado de endereços para enviar. Quando a relação é limitada, esta é uma relação de 1:Poucos.

Quando deve referenciar os dados?

Referenciar dados como documentos separados quando os seguintes critérios se aplicarem aos seus dados:

  • Ler ou atualizar de forma independente: Isto é especialmente verdadeiro quando se combinam entidades que resultariam em documentos grandes. As atualizações no Azure Cosmos DB exigem que o item inteiro seja substituído. Se um documento tiver algumas propriedades que são frequentemente atualizadas juntamente com um grande número de propriedades principalmente estáticas, é muito mais eficiente dividir o documento em duas. Em seguida, um documento contém o conjunto menor de propriedades que são atualizadas com freqüência. O outro documento contém os valores estáticos e imutáveis.

  • 1:Muitos relacionamentos: Isto é especialmente verdadeiro se o relacionamento é ilimitado. O Azure Cosmos DB tem um tamanho máximo de documento de 2 MB. Portanto, em situações em que a relação 1:Many é ilimitada ou pode crescer muito, os dados devem ser referenciados, não incorporados.

  • Relacionamento muitos:muitos: exploraremos um exemplo desse relacionamento em uma unidade posterior com tags de produto.

    A separação dessas propriedades reduz o consumo de rendimento para maior eficiência. Também reduz a latência para um melhor desempenho.