Cuándo insertar o hacer referencia a datos
En la unidad anterior, insertamos los datos de dirección y contraseña del cliente en un nuevo documento de cliente. Esa acción reduce el número de solicitudes, lo que mejora el rendimiento y rebaja el costo. Sin embargo, no siempre se pueden insertar datos. Hay reglas para cuando sea conveniente insertar datos en un documento en lugar de hacer referencia a ellos en una fila diferente.
¿Cuándo debe insertar datos?
Inserte datos en un documento cuando se apliquen los siguientes criterios a los datos:
- Leídos o actualizados juntos: los datos que se leen o actualizan juntos casi siempre se modelan como un solo documento. Esto reduce el número de solicitudes, que es nuestro objetivo para ser eficientes. En este escenario nuestro, todas las entidades de cliente se leen o escriben juntas.
- Relación de 1 a 1: por ejemplo, Customer y CustomerPassword tienen una relación de 1 a 1.
- Relación de 1 a unos pocos: en una base de datos NoSQL, es necesario distinguir las relaciones de 1 a varios como limitadas o no limitadas. Customer y CustomerAddress tienen una relación de 1 a varios limitada porque los clientes de una aplicación de comercio electrónico normalmente solo tienen unas cuantas direcciones de envío. Cuando la relación es limitada, se conoce como relación de 1 a unos cuantos.
¿Cuándo debe hacer referencia a los datos?
Se debe hacer referencia a los datos como documentos independientes cuando se les aplican los siguientes criterios:
Lectura o actualización de forma independiente: esto es especialmente cierto cuando se combinan entidades que darían lugar a documentos de gran tamaño. Las actualizaciones en Azure Cosmos DB requieren que se reemplace todo el elemento. Si un documento tiene algunas propiedades que se actualizan con frecuencia junto con un gran número de propiedades principalmente estáticas, es mucho más eficaz dividir el documento en dos. Así, un documento contiene el conjunto más pequeño de propiedades que se actualizan con frecuencia. El otro documento contiene los valores estáticos e invariables.
Relación de 1 a varios: esto es especialmente cierto si la relación no está limitada. Si tiene un documento que aumenta de tamaño una cantidad desconocida o ilimitada de veces, el costo y la latencia de esas actualizaciones seguirán aumentando. Esto se debe a que el tamaño creciente de la actualización cuesta más RU/s y a que las cargas útiles van por la red, lo que en sí mismo también es ineficiente.
Relación de varios a varios: exploraremos un ejemplo de esta relación en una unidad posterior con etiquetas de producto.
La separación de estas propiedades reduce el consumo de rendimiento para mejorar la eficacia. También reduce la latencia para mejorar el rendimiento.