Estoy pensando en comenzar mi primer proyecto CouchDB y proceder de un fondo ORM Me preocupa cómo crear mis documentos que pueden ser difíciles de mantener.noSQL y datos normalizados
Por ejemplo, si tengo el siguiente modelo:
A * ---> (1) B
que significa que por cada Un objeto hay un objeto B y hay muchas instancias de una que puede compartir un objeto B En este caso, hay punteros/clave externa en A a B.
Podría crear un documento que contenga todos los datos A y B. Sin embargo, el problema que tengo es si en una etapa posterior (después de que se creen 10000 de documentos), es posible que necesite cambiar algunos datos, lo que significa que tengo que actualizar todos mis documentos.
En un mundo de base de datos ORM/normalizada, simplemente actualizaría B y todas mis referencias están ahora en la base de datos.
¿Cómo manejo esto en CouchDB o el enfoque NoSQL no es adecuado para este tipo de situaciones?
JD
+1 excelente información aquí. – Petrogad
De acuerdo. Creo que hay dos indicadores principales: a) ¿Cuántas veces cambias el objeto incrustado? b) ¿Necesitas mostrar el objeto incrustado cada vez que se muestra el padre? Y si es así, en qué dispositivo lo está haciendo (por ejemplo, es posible o no una consulta). Porque si solo cambia una vez cada 100000 documentos, entonces es más fácil almacenarlo incrustado y una vez cambiarlo frente a consultas cada vez que se muestra el objeto al usuario – rit
Gracias por la información. El objeto incrustado solo cambiaría en circunstancias excepcionales. ¿Estás diciendo que debería tenerlo incrustado (es decir, el documento contiene A y B)? Las consultas son importantes ya que serán utilizadas por cada solicitud. Por favor, puedes aclarar un poco. –