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

Duda existencial en diseño de base

Estas en el tema de Duda existencial en diseño de base en el foro de Bases de Datos General en Foros del Web. pues tengo un diseño que no me termina de convencer, ya que a la hora de reportes o algunas consultas se complica demasiado. El diseno ...
  #1 (permalink)  
Antiguo 07/05/2008, 15:27
Avatar de xcars  
Fecha de Ingreso: mayo-2005
Ubicación: El Salvador
Mensajes: 753
Antigüedad: 19 años
Puntos: 4
Duda existencial en diseño de base

pues tengo un diseño que no me termina de convencer, ya que a la hora de reportes o algunas consultas se complica demasiado.
El diseno basico es el siguiente:

Prestamos: la cual contiene los registros de prestamos realizados por personas, y que contiene toda la informacion general de estos, nombre, domicilio, # de prestamo, etc

Categoria el Prestamo: el cual lleva una lista de las categorias en que puede estar un cliente, ej: Localizado, Ilocalizado

Subcategoria del prestamo: una lista de las subcategorias que puede tener cada categoria, ej:
Categoria subcategoria
Localizado Telefonicamente
Localizado En casa
Ilocalizado En trabajo

etc etc

ahora bien, a estas personas se les llama por telefono para realizar diferentes gestiones, cobro administrativo, cobro judicial, actualizacion de datos, etc

por lo tanto se relaciona con una tabla llamada GESTIONES, la cual es una bitacora de todas las llamadas telefonicas hechas a los clientes, esto significa que un prestamo puede tener muuuuchas gestiones, ahora bien cada gestion tiene una ACCION y una REACCION o resultado, por lo cual hay 2 tablas mas, una para las acciones (llamada por telefono, envio de fax, envio de email, envio de carta, etc) y las REACCIONES (cliente no reconoce deuda, cliente no estaba, cliente cambio domicilio etc)

ahora bien, por lo general yo siempre debo mostrar a parte de todas la informacion general, la informacion de la ultima gestion, pero la relacion de PRESTAMOS a GESTIONES solo es por el No. de prestamo por lo cual, un INNER JOIN siempre me devolvera n filas segun coincidencias en GESTIONES pero yo solo quiero coincidencias con la ultima gestion realizada, este es el primer problema, que aunque ya lo resolvi no me parece muy correcta la forma.

El otro problema es que quiero sacar un reporte que me liste todos los prestamos que tienen como resultado de la ultima gestion una cierta reaccion, pero por ejemplo yo podria llamarle 3 veces a un cliente y obtener la misma reaccion, pero a mi me interesa la ultima, o peor aun, la primera llamada no obtuve resultados, la segunda llamada tuve de reaccion_id 5 (por eje.) pero ya en la tercera llamada tuve como reaccion_id=7 entonces, este caso no deberia salir en el reporte, ya que me interesa el resultado de la ultima gestion, y es aqui, donde ya el diseño siento que topa.

Que me podrian sugerir? si necesitan el diseno en si, pues con gusto puedo ver como lo pongo, aqui les dejo el codigo de como voy hasta ahorita, pero aun asi no me resuelve nada.

Código:
select 
a.prestamo_id,
a.prestamo_deudor,
a.prestamo_direccion,
d.categoria_nombre,
e.subcategoria_nombre,
a.prestamo_notas,
(select top 1 c.resultado_nombre
from gestiones b inner join resultados_Gestiones c
on (b.resultado_id=c.resultado_id)
where a.prestamo_id=b.prestamo_id and b.resultado_id=6
order by gestion_id desc) as resultado_gestion
FROM 
prestamos a
INNER JOIN gestiones b ON (a.prestamo_id=b.prestamo_id and b.resultado_id=6)
INNER JOIN categorias d ON (a.categoria_id=d.categoria_id)
INNER JOIN subcategorias e ON (a.categoria_id=e.categoria_id 
AND a.subcategoria_id=e.subcategoria_id)
este me repite una fila por cada gestion, aunque la fila esta bien, me repite filas lo que significa que algo se me ha quedado fuera, espero y me puedan ayudar con el problema.
Saludos
__________________
Con Microaplicaciones puedes hacer tu tienda en línea de forma sencilla y rápida, sin costos ocultos y con mucha responsabilidad.
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 19:06.