Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General »

Como establezco estas "relaciones" en MongoDB

Estas en el tema de Como establezco estas "relaciones" en MongoDB en el foro de Bases de Datos General en Foros del Web. Hola, tengo 3 entidades. - Impuestos - Condiciones - Alicuotas Esta mas que claro que a simple vista puedo solucionarlo de la siguiente manera Código: ...
  #1 (permalink)  
Antiguo 24/06/2014, 06:28
Avatar de korg1988  
Fecha de Ingreso: junio-2006
Ubicación: Santa Fe, Argentina
Mensajes: 825
Antigüedad: 17 años, 9 meses
Puntos: 19
Como establezco estas "relaciones" en MongoDB

Hola, tengo 3 entidades.
- Impuestos
- Condiciones
- Alicuotas

Esta mas que claro que a simple vista puedo solucionarlo de la siguiente manera
Código:
collection: impuestos
{
    nombre: "IVA",
    condiciones: [
        "Monotributo",
        "Responsable Inscripto"
    ],
    alicuotas : {
        21.00,
        10.50,
        27.00
    }
}
El problema es que tengo otros documentos en la coleccion personas que llevan consigo mismo la condicion para cada impuesto
Podria guardar estos datos asi:
Código:
{
    nombre: "Juan Perez",
    condiciones_impuestos : [
        "Monotributo",
        ...
    ]
}
pero en la coleccion de impuestos, las condiciones tienen otros atributos, por lo que necesito si o si de una relacion para poder acceder a estos.
Podria solucionarlo asi:
Código:
collection: impuestos
{
    nombre: "IVA",
    condiciones: [
        {
            key: "mon",
            nombre: "Monotributo"
        },
        {
            key: "ri",
            nombre: "Responsable Inscripto"
        }
    ],
    alicuotas : {
        21.00,
        10.50,
        27.00
    }
}


{
    nombre: "Juan Perez",
    condiciones_impuestos : [
        "mon"
    ]
}
pero no podria garantizar que las key para las condiciones sean unique, por lo que se me ocurrio separar condiciones e impuestos en dos colecciones distintas y crear relaciones, pero no se si estaria rompiendo demasiado el esquema noSQL, aunque en la teoria, las relaciones estan permitidas.. No se.. Que opinan?
  #2 (permalink)  
Antiguo 24/06/2014, 06:45
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Como establezco estas "relaciones" en MongoDB

Cita:
Iniciado por korg1988 Ver Mensaje
pero no podria garantizar que las key para las condiciones sean unique, por lo que se me ocurrio separar condiciones e impuestos en dos colecciones distintas y crear relaciones, pero no se si estaria rompiendo demasiado el esquema noSQL, aunque en la teoria, las relaciones estan permitidas.. No se.. Que opinan?

Creo que debes recordar que no existen relaciones fuertes en NoSQL. Es un paradigma diferente, y no posee las restricciones del modelo E-R.

Veremos qué te pueden aconsejar los que conocen más del tema.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 24/06/2014, 07:32
Avatar de korg1988  
Fecha de Ingreso: junio-2006
Ubicación: Santa Fe, Argentina
Mensajes: 825
Antigüedad: 17 años, 9 meses
Puntos: 19
Respuesta: Como establezco estas "relaciones" en MongoDB

Cita:
Iniciado por gnzsoloyo Ver Mensaje

Creo que debes recordar que no existen relaciones fuertes en NoSQL. Es un paradigma diferente, y no posee las restricciones del modelo E-R.

Veremos qué te pueden aconsejar los que conocen más del tema.
Hola @gnzsoloyo, es cierto lo que decís, pero también es cierto que no existe ningún tipo de información en el planeta que no tenga relación con alguna otra!.

De hecho en la documentación de MongoDB hablan de los dos tipos de relaciones, referenciales y embebidas, el tema es ver en que punto estamos yéndonos por las nubes.

Etiquetas: entidad, mongodb, relaciones, siguiente, son
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 20:25.