Usos generales
Si tiene estructuras de datos que no están claramente definidas en el momento en que crea el sistema. Tiendo a mantener la configuración del usuario en nosql, por ejemplo. Otro ejemplo fue un sistema donde los usuarios necesitaban poder agregar campos en tiempo de ejecución, muy doloroso en un RDBMS y muy fácil en NoSQL.
Si la estructura de su modelo se centra principalmente en uno o pocos objetos de modelo y la mayoría de las relaciones son en realidad objetos secundarios de los objetos de modelo principales. En este caso, encontrará que tendrá muy poca necesidad de uniones reales. Descubrí que el sistema de gestión de contactos se puede implementar bastante bien en nosql, por ejemplo. Una persona puede tener múltiples direcciones, teléfonos y correos electrónicos. En lugar de ponerlos en una tabla separada, todos se vuelven parte del mismo modelo y tienes un objeto de una persona.
Si desea beneficiarse de agrupar sus datos en varios servidores en lugar de tener un servidor monolítico, que RDBMS requiere comúnmente.
Almacenamiento en caché. Incluso si desea quedarse con un RDBMS como su base de datos principal, puede ser útil usar una base de datos NoSQL para almacenar en caché los resultados de la consulta o conservar datos, como los contadores.
Almacenar documentos. Si desea almacenar documentos coherentes, en una base de datos, algunas de las bases de datos NoSQL (como MongoDB) están realmente especializadas en almacenarlas.
¿Qué pasa con las uniones?
Honestamente, el asunto de no unirse también me pareció bastante aterrador al principio. Pero el truco es dejar de pensar en SQL. Realmente debe pensar con el objeto que tiene en la memoria cuando ejecuta su aplicación. Estos deberían guardarse más o menos en la base de datos NoSQL tal como están.
Debido a que puede almacenar su gráfico de objeto completo, con objetos secundarios, se elimina la mayor parte de la necesidad de uniones. Y si encuentra que necesita uno, tendrá que morder la bala y buscar ambos objetos y unirse al código de su aplicación.
Afortunadamente, la mayoría de los conductores pueden unirse por usted, si configura su esquema correctamente.
Para leer más, en realidad recomiendo a Martin Fowler .
En algunos casos, no necesitará claves foráneas. Por ejemplo:
puede ser tan simple como cargar la
comments
parte de un documento correspondiente a un usuario. Esto se llama desnormalización : en lugar de tener dos conjuntos con una combinación, tiene un documento y todo lo que necesita está dentro del documento. Una consulta, sin uniones, mejor rendimiento .Pero en algunas circunstancias, esto puede conducir a la duplicación de datos , por lo que la vinculación de un documento a otro podría ser adecuado. En este caso, puede interesarle la normalización de MongoDB, la clave externa y la unión , la página de referencias de la base de datos y especialmente la función DBRefs.
fuente