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. |