sql >> Base de Datos >  >> NoSQL >> MongoDB

Bases de datos de documentos:datos redundantes, referencias, etc. (específicamente MongoDB)

Básicamente hay dos escenarios:fresco y obsoleto .

Datos nuevos

Almacenar datos duplicados es fácil. Mantener los datos duplicados es la parte difícil. Entonces, lo más fácil es evitar el mantenimiento, simplemente no almacenando datos duplicados para empezar. Esto es principalmente útil si necesita datos nuevos . Solo almacene las referencias y consulte las colecciones cuando necesite recuperar información.

En este escenario, tendrá algunos gastos generales debido a las consultas adicionales. La alternativa es rastrear todas las ubicaciones de datos duplicados y actualizar todas las instancias en cada actualización. Esto también implica gastos generales, especialmente en relaciones N-a-M como la que mencionaste. Entonces, de cualquier manera, lo harás tener algunos gastos generales, si necesita datos nuevos. No se puede tener lo mejor de ambos mundos.

Datos obsoletos

Si puede permitirse el lujo de tener datos obsoletos, las cosas se vuelven mucho más fáciles. Para evitar la sobrecarga de consultas, puede almacenar datos duplicados. Para evitar tener que mantener datos duplicados, no almacenará datos duplicados. Al menos no activamente .

En este escenario, también querrá almacenar solo las referencias entre documentos. Luego use un trabajo periódico de reducción de mapas para generar los datos duplicados. A continuación, puede consultar el resultado de reducción de mapa único, en lugar de recopilaciones separadas. De esta manera, evita la sobrecarga de consultas, pero tampoco tiene que buscar cambios en los datos.

Resumen

Almacenar únicamente las referencias a otros documentos. Si puede permitirse datos obsoletos, utilice trabajos periódicos de reducción de mapas para generar datos duplicados. Evite mantener datos duplicados; es complejo y propenso a errores.