Quando incorporare o fare riferimento ai dati

Completato

Nell'unità precedente i dati relativi all'indirizzo e alla password del cliente sono stati incorporati in un nuovo documento del cliente. Questa azione riduce il numero di richieste, migliorando le prestazioni e riducendo i costi. Tuttavia, non è sempre possibile incorporare i dati. Esistono regole riguardo a quando è consigliabile incorporare i dati in un documento anziché fare riferimento agli stessi in una riga diversa.

Quando è necessario incorporare i dati?

Incorporare dati in un documento quando ai dati si applicano i criteri seguenti:

  • Dati letti o aggiornati insieme: i dati letti o aggiornati insieme vengono quasi sempre modellati come un singolo documento. Ciò riduce il numero di richieste, che è l’obiettivo in termini di efficienza. In questo scenario tutte le entità cliente vengono lette o scritte insieme.
  • Relazione uno-a-uno: ad esempio, Customer e CustomerPassword hanno una relazione uno-a-uno.
  • Relazione uno-a-pochi: in un database NoSQL è necessario distinguere le relazioni uno-a-molti come con o senza vincoli. Customer e CustomerAddress hanno una relazione uno-a-molti con vincoli perché i clienti in un'applicazione di e-commerce in genere hanno solo pochi indirizzi di spedizione. Se la relazione ha dei vincoli, si tratta di una relazione uno-a-pochi.

Quando è necessario fare riferimento ai dati?

Fare riferimento ai dati come documenti separati quando ai dati si applicano i criteri seguenti:

  • Dati letti o aggiornati in modo indipendente: vale soprattutto per la combinazione di entità che generano documenti di grandi dimensioni. Gli aggiornamenti in Azure Cosmos DB richiedono la sostituzione dell'intero elemento. Se un documento ha alcune proprietà che vengono aggiornate di frequente insieme a un numero elevato di proprietà per lo più statiche, è molto più efficiente suddividere il documento in due. Un documento contiene quindi il set più piccolo di proprietà che vengono aggiornate di frequente. L'altro documento contiene i valori statici che non cambiano.

  • Relazione uno-a-molti: vale soprattutto se la relazione è senza vincoli. Se si dispone di un documento che aumenta di dimensioni un numero sconosciuto o illimitato di volte, il costo e la latenza per tali aggiornamenti continuerà ad aumentare. Ciò è dovuto all'aumento delle dimensioni dell'aggiornamento che costa più unità di richiesta (UR) al secondo e ai payload che passano sulla rete, anch'essa inefficiente.

  • Relazione molti-a-molti: verrà illustrato un esempio di questa relazione in un'unità successiva con tag del prodotto.

    La separazione di queste proprietà riduce il consumo di velocità effettiva e ottimizza l'efficienza. Riduce anche la latenza migliorando le prestazioni.