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

Mongo DB Design, incrustaciones vs relaciones

1) Con respecto al límite de documentos de 4 MB, esto es lo que dice "MongoDB:The Definitive Guide":

Al final, depende de qué tan grande espera que crezcan las facturas de un usuario. Espero que el extracto anterior le dé una idea de los límites impuestos por el tamaño del documento.

2) El esquema desnormalizado (las facturas van con el documento de usuario) es el camino a seguir si sabe que nunca ejecutará consultas globales sobre las facturas (un ejemplo de tal consulta es si desea recuperar las diez facturas más recientes ingresado al sistema). Tendrá que usar map-reduce para recuperar los resultados de tales consultas si usa un esquema desnormalizado.

El esquema normalizado (usuario y facturas en documentos separados) es una mejor opción si desea flexibilidad en la forma en que se consultan las facturas. Sin embargo, dado que MongoDB no admite combinaciones, deberá ejecutar varias consultas cada vez que desee recuperar las facturas correspondientes a un usuario.

Dado el caso de uso que mencionaste, optaría por un esquema desnormalizado.

3) Todas las actualizaciones en MongoDB son atómicas y serializadas. Eso debería responder a la preocupación de Steve.

Puede encontrar estas diapositivas útiles. http://www.slideshare.net/kbanker/mongodb-meetup

También puede consultar la página de implementaciones de producción de MongoDB. Puede encontrar útiles las diapositivas de SF.net.