Ver Mensaje Individual
  #1 (permalink)  
Antiguo 01/08/2011, 10:28
GUILLHERMOSOFT
 
Fecha de Ingreso: marzo-2009
Ubicación: Cali (Valle) - Colombia
Mensajes: 164
Antigüedad: 15 años, 9 meses
Puntos: 2
De acuerdo Duda Condicionar JOIN y eficiencia consulta

Cordial Saludo

Actualmente tengo 4 tablas: "terceros", "clientes", "zonas" y "remesas". Una remesa se puede relacionar a un tercero, a un cliente ó a una zona, pero solo a una de estas tres entidades a la vez, no a más de una de manera simultanea, por lo cual se me ocurrio crear una tabla llamada "relacionesRemesas" con los campos "idRemesa", "idEntidad", "entidad" (en el caso de ser "1" la relación es con clientes, en el caso de ser "2" la relación es con terceros y en el caso de ser "3" la relación es con zonas) por lo cual seria necesario condicionar en el SELECT (de la consulta al momento de visualizar el reporte con los datos de la remesa) el nombre a imprimir (ya sea de tercero, cliente ó zona, lo cual según he leído y probado con CASE se puede hacer) como así mismo el JOIN a realizar (ya sea a la tabla terceros, clientes ó zonas), más este JOIN también tendria que ir condicionado con base al valor que se guarde en el campo "entidad" (pues este determina con qué esta relacionada la remesa) más esto es exactamente lo que no sé hacer y no sé si se pueda hacer.

Así mismo se me ocurre que podria eliminar la tabla "relacionesRemesas" y crear otras tres, es decir: "remesasClientes" (con los campos "idRemesa" y "idCliente"), "remesasZonas" (con los campos "idRemesa" y "idZona") y "remesasTerceros" (con los campos "idRemesa" y "idTercero") y al momento de visualizar el reporte con los datos de la remesa consultar a las 3 tablas (lo cual desde mi punto de vista es poco eficiente).

Me gustaría saber sus puntos de vista y/ó sugerencias de cómo sería mejor hacerlo y saber si lo primero si es posible de hacer y cómo.

Muchas gracias.