.net - ogm - Cuándo reemplazar RDBMS/ORM con NoSQL/DocumentStore
hibernate ogm (1)
Todos los ejemplos que mencionaste pueden compilarse utilizando una tienda de documentos. Si debe usarlo, depende de los requisitos exactos.
Si está tratando con una comunidad social que admite transacciones monetarias , realmente debería usar un RDBMS para manejar estas transacciones. Simplemente no puede permitirse el lujo de tener datos inconsistentes en esta área.
Si su aplicación no tiene requisitos muy estrictos en cuanto a la coherencia de los datos, puede considerar el uso de una base de datos de documentos. Tiene varias ventajas sobre un RDBMS. Por ejemplo, si usa un diseño impulsado por dominio para compilar su aplicación, encontrará que las raíces agregadas se pueden almacenar naturalmente como un solo documento. Esto dará lugar a muy poca fragmentación de datos dentro de las entidades, lo que le proporcionará un mejor rendimiento cuando fragmente sus datos en múltiples nodos.
Algunos controladores, incluido NoRM para MongoDB, admiten discriminadores de tipo . Estos le permiten persistir y rehidratar múltiples subclases usando muy poca configuración. Por ejemplo, si su aplicación admite múltiples tipos de direcciones de inicio, el controlador se encargará de manejar los diferentes subtipos de direcciones. También puede agregar nuevos subtipos y el controlador también los manejará automáticamente. Vea este artículo para un ejemplo detallado.
Lo anterior no sería posible sin la mayor ventaja de las tiendas orientadas a documentos sobre bases de datos SQL: datos sin esquema . Si está tratando con datos definidos por el usuario, las bases de datos de documentos son el camino a seguir. Por ejemplo, si permite que los usuarios carguen archivos y los etiqueten libremente con los datos que deseen, puede almacenar fácilmente estas etiquetas como pares clave-valor, o incluso estructuras de valores clave anidadas para el etiquetado categorizado.
Miré MongoDB / norma (pero quiero una respuesta de tienda general orientada a documentos). Parece muy bueno trabajar con él y me interesa saber cuándo se debe usar en lugar de RDBMS + ORM.
¿Qué debería usar para, por ejemplo:
- Stackoverflow sitios similares
- Comunidades sociales
- foros
(Publiqué otra pregunta más general pero obtuvo una respuesta espléndida que podría ser interesante para otros, de ahí la nueva pregunta)