Modelado One-To-One en MongoDB

Para realizar un modelado one to one en MongoDB vamos a utilizar el ejemplo Persona y Domicilio.

Una persona tendrá asociada la dirección de un domicilio. Estas entidades las modelaríamos de la siguiente manera:

Para el caso de la persona el documento JSON de ejemplo será:

Y para el caso del domicilio:

Para resolver el modelado one-to-one tenemos dos estrategias posibles. La primera será la de embedding, es decir, incrustar la entidad Domicilio dentro de la entidad Persona. La segunda será la de linking, en este caso se usará una foreign key para mantener estas relaciones.

Modelado One-to-One Embedding en MongoDB

En este primer caso insertamos el domicilio en la colección de personas. Será un subdocumento dentro de la persona.

Para insertarlo:

Lo bueno de esta estrategia es que para recuperar el domicilio de una persona simplemente tendremos que realizar una única operación de consulta.

Modelado One-to-One Linking en MongoDB

En este caso crearemos una clave dentro de la colección de personas y posteriormente la usaremos como foreign key dentro de la colección de domicilios.

El documento de la persona (user) tendrá un id:

Ese id será usado dentro del documento del domicilio (address):

Para insertarlo:

Así para recuperar la información tendremos que realizar dos consultas. En la primera recuperaremos el id del usuario y con dicho id tendremos que acceder a la segunda colección a recuperar la colección:

El modelo linking será el más parecido a los modelos Entidad/Relación. Aunque es más apropiado aplicar una estrategia de embedding para el modelo de relaciones One-to-One en MongoDB

También te podría gustar...

Deja una respuesta

Tu dirección de correo electrónico no será publicada.

WP Twitter Auto Publish Powered By : XYZScripts.com