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

Evitar relacion circular

Estas en el tema de Evitar relacion circular en el foro de Mysql en Foros del Web. Hola! gracias por lleer! Es necesaria y posible evitar la relacion circular que se genera por la tabla PRESUPUESTOS ? Los presupuestos se generan mensualmente ...
  #1 (permalink)  
Antiguo 01/04/2013, 13:07
Avatar de lisandro Arg  
Fecha de Ingreso: octubre-2003
Ubicación: Cordoba, Argentina
Mensajes: 945
Antigüedad: 21 años
Puntos: 24
Evitar relacion circular

Hola! gracias por lleer!

Es necesaria y posible evitar la relacion circular que se genera por la tabla PRESUPUESTOS ?

Los presupuestos se generan mensualmente por consorcio y a partir de estos se crea la deuda de cada propiedad de ese consorcio.

  #2 (permalink)  
Antiguo 03/04/2013, 05:40
Avatar de Kamae  
Fecha de Ingreso: abril-2008
Ubicación: Barcelona (Catalunya)
Mensajes: 307
Antigüedad: 16 años, 6 meses
Puntos: 13
Respuesta: Evitar relacion circular

Hola lisandro

Pues parece que sí se puede evitar no? O bien cortas la relación entre el consorcio y el presupuesto, o bien el de la de deuda con presupuesto.

Por ejemplo, para el primer caso: Tienes el presupuesto con ID 333 y quieres saber a qué consorcio pertenece. Sabes que en la tabla DEUDAS tienes el presupuesto 333 con un ID propiedad asociados. Con el ID de propiedad consultas a la tabla PROPIEDADES y obtienes el ID consorcio al que pertenece. Con este último atacas a la tabla CONSORCIO para obtener el name.

Para el otro caso, a partir de la deuda podemos saber el presupuesto al que afecta porque dicha deuda hace referencia a una propiedad, que pertenece a un consorcio, y que dicho consorcio está asociado a un presupuesto.

No sé si te referías a esto
  #3 (permalink)  
Antiguo 03/04/2013, 13:28
Avatar de lisandro Arg  
Fecha de Ingreso: octubre-2003
Ubicación: Cordoba, Argentina
Mensajes: 945
Antigüedad: 21 años
Puntos: 24
Respuesta: Evitar relacion circular

Hola Kamae, gracias por responder.

Hay dos detalles por los que no puedo rompler las relaciones.


Cita:
Iniciado por Kamae Ver Mensaje
Por ejemplo, para el primer caso: Tienes el presupuesto con ID 333 y quieres saber a qué consorcio pertenece. Sabes que en la tabla DEUDAS tienes el presupuesto 333 con un ID propiedad asociados. Con el ID de propiedad consultas a la tabla PROPIEDADES y obtienes el ID consorcio al que pertenece. Con este último atacas a la tabla CONSORCIO para obtener el name.
La tabla PRESUPUESTOS necesita tener el consorcio_id porque una vez al mes se cargan todos los presupuestos de todos los consorcios y despues de una determinada fecha estos generan los registros de la tabla DEUDA. En esa fecha el usuario necesita identificar a los presupuestos por consorcio para saber la deuda de cual quiere generar

Cita:
Iniciado por Kamae Ver Mensaje
Para el otro caso, a partir de la deuda podemos saber el presupuesto al que afecta porque dicha deuda hace referencia a una propiedad, que pertenece a un consorcio, y que dicho consorcio está asociado a un presupuesto.
Los PRESUPUESTOS y las DEUDAS son mensuales, si no pongo el presupuesto_id en DEUDAS no sé cual de todos generó el registro.


Me preguto si hay casos en los que no se puede evitar este tipo de relaciones
  #4 (permalink)  
Antiguo 03/04/2013, 13:49
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: Evitar relacion circular

Mal diseño, mal análisis del sistema...
En primer lugar, sería bueno que aclararas qué entiendes por "presupuesto", porque eso parece un tanto abstracto. Por lo general un presupuesto es un documento que no determina un comprobante de deuda, sino es precisamente una suposición de gastos posibles para un trabajo determinado.
Si por tal entiendes otra cosa, sería bueno que expliques claramente la cosa.
Por otro lado, si "presupuesto" es alguna clase de comprobante de deuda, en todo caso las deudas no son de las propiedades. Conceptualmente es un error. Una deuda sólo puede pertenecer a una persona física o jurídica, pero no a una "cosa", como es una propiedad. Una deuda en ese caso está pertenece a una persona jurídica, en tanto esa persona jurídica tenga relación con una propiedad.
En ese contexto, las deudas de una persona jurídica pueden ser discriminables, pero para que exista tal discriminación, dado que una persona puede tener N comprobantes de N propiedades, los comprobantes de deuda se deben asociar a una cuenta, en una relación 1:N. Como a su vez cada persona posee N cuentas (una por propiedad) y es a esa cuenta donde se vinculan las deudas... para lograr una buena trazabilidad a tu diseño le están faltando entidades y por tanto tablas.
Para que quede claro: Si existe una relación circular, entonces lo que hay es un error de diseño, un mal análisis, o un mal planteo de los requerimientos al sistema.
Para mi, tienes que volver al tablero y analizar los requerimientos nuevamente. No están completos.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #5 (permalink)  
Antiguo 04/04/2013, 17:11
Avatar de lisandro Arg  
Fecha de Ingreso: octubre-2003
Ubicación: Cordoba, Argentina
Mensajes: 945
Antigüedad: 21 años
Puntos: 24
Respuesta: Evitar relacion circular

Lo primero q tendria q haber dicho es que el sistema debe servir para generar y cobrar las expensas (gastos comunes) de un consorcio.

Cita:
Iniciado por gnzsoloyo Ver Mensaje
Mal diseño, mal análisis del sistema...
Es duro pero siempre es bueno saber donde está parado uno para saber a donde ir.

Cita:
Iniciado por gnzsoloyo Ver Mensaje
En primer lugar, sería bueno que aclararas qué entiendes por "presupuesto", porque eso parece un tanto abstracto. Por lo general un presupuesto es un documento que no determina un comprobante de deuda, sino es precisamente una suposición de gastos posibles para un trabajo determinado.
Según lo que tengo entendido en algunos consorcios las expensas se pagan a mes vencido pero en estos se pagan a mes adelantado de ahí el nombre presupuesto. El administrador del consorcio mes a mes estima cuanto dinero va a necesitar y en base a eso genera un presupuesto, luego el monto de este dividido por un porcentaje es el que termina siendo la dueda(expensa) de cada dpto del consorcio.

Esta aclaración que hice afecta en algo lo que me has dicho?

Etiquetas: circular, relacion, tabla
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 16:34.