Antes de sumergirme profundamente en MongoDB durante días, pensé que podría hacer una pregunta bastante básica sobre si debería profundizar en ella o no. Básicamente no tengo experiencia con nosql.Normalización MongoDB, clave externa y unión
He leído un poco acerca de algunos de los beneficios de las bases de datos de documentos, y creo que para esta nueva aplicación, serán realmente geniales. Siempre es una molestia hacer favoritos, comentarios, etc. para muchos tipos de objetos (muchas relaciones m-to-m) y subclases, es un poco difícil de manejar.
También tengo una estructura que será difícil de definir en SQL porque está muy anidada y se traduce a un documento mucho mejor que 15 tablas diferentes.
Pero estoy confundido acerca de algunas cosas.
¿Es deseable mantener su base de datos normalizada todavía? Realmente no quiero actualizar múltiples registros. ¿Sigue así cómo se acercan las personas al diseño de la base de datos en MongoDB?
¿Qué sucede cuando un usuario prefiere un libro y esta selección todavía se almacena en un documento de usuario, pero luego se borra el libro? ¿Cómo se separa la relación sin claves externas? ¿Soy responsable manualmente de eliminar todos los enlaces por mi cuenta?
¿Qué sucede si un usuario ha preferido un libro que ya no existe y lo consulto (algún tipo de unión)? ¿Tengo que hacer alguna tolerancia a fallas aquí?
Al hacer bases de datos SQL como MySQL, no eliminan enlaces entre tablas automáticamente, incluso cuando están conectados por clave externa. Lo único que hacen es evitar que elimines una fila de otra tabla conectada por una clave externa, pero incluso allí solo se lo dices. ¿Por qué crees que sería diferente en NoSQL? – trysis
@trysis, google ELIMINAR CASCADA. –
Sí, me olvido de por qué dije eso, fue hace tanto tiempo. Me disculpo si confundí a alguien con mi ignorancia pasada. – trysis