Quando inserir ou referenciar dados
Na unidade anterior, inserimos os dados de endereço do cliente e a senha em um novo documento do cliente. Essa ação reduz o número de solicitações, o que aprimora o desempenho e reduz os custos. No entanto, nem sempre é possível inserir os dados. Há regras para quando você deve inserir dados em um documento em vez de referenciá-los em outra linha.
Quando você deve inserir os dados?
Insira os dados em um documento quando os seguintes critérios se aplicarem aos seus dados:
- Lidos ou atualizados juntos: os dados que são lidos ou atualizados juntos são quase sempre modelados como um documento individual. Isso reduz o número de solicitações que é nosso objetivo em ser eficientes. Neste cenário, todas as entidades de cliente são lidas ou gravadas juntas.
- Relação de um para um: por exemplo, Customer e CustomerPassword têm uma relação de um para um.
- Relação de um para poucos: em um banco de dados NoSQL, é necessário distinguir relações de um para muitos como limitadas ou desassociadas. Customer e CustomerAddress têm uma relação de um para muitos limitada, porque os clientes de um aplicativo de comércio eletrônico normalmente têm apenas alguns endereços para envio. Quando a relação é limitada, é uma relação de um para poucos.
Quando você deve referenciar os dados?
Referencie os dados como documentos separados quando os seguintes critérios se aplicarem aos seus dados:
Leitura ou atualização independentemente: isso é especialmente verdadeiro ao combinar 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 sejam frequentemente atualizadas juntas com muitas propriedades, em grande maioria, estáticas, será muito mais eficiente dividir o documento em dois. Portanto, um documento individual contém o conjunto menor de propriedades que são atualizadas com frequência. O outro documento contém os valores estáticos e inalterados.
Relação de um para muitos: isso é especialmente verdadeiro se a relação for desassociada. Se você tiver um documento que aumente de tamanho uma quantidade desconhecida ou ilimitada de vezes, o custo e a latência dessas atualizações continuarão aumentando. Isso ocorre devido ao tamanho crescente da atualização que custa mais RU/s e às cargas que passam pela rede, o que, por si só, também também é ineficiente.
Relação de muitos para muitos: exploraremos um exemplo dessa relação em uma unidade posterior com marcas de produto.
A separação dessas propriedades reduz o consumo de taxa de transferência para obter mais eficiência. Isso também reduz a latência para melhorar o desempenho.