FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
||||
|
||||
Encuentro natural al usar dos veces la misma tabla
Bueno aquí me tiene de nuevo con otra consulta. Utilizo firebird 2.5. Explico mi duda
Trabajo en una distribuidora de gases industriales (llámese oxígeno, nitrógeno, argón, etc.) e implemente un sistema para controlar los movimientos de los cilindros. Nuestro modo de trabajo se basa en prestar cilindros a nuestros distintos clientes que son cilindros propios de la empresa o cilindros que nuestros proveedores nos asignan; pero también se da el caso de que algún cliente nos dé un cilindro de su propiedad como canje. Asi que la tabla de cilindros queda asi:
El campo propietario se corresponde con la clave primaria de mi tabla de clientes que está definida así:
Debido a que se maneja una cantidad minima de proveedores con los mismos campos se guardan clients y proveedores en la misma table diferenciandose por el campo tipo (0 clientes, 1 proveedores) Bueno he querido listar los movimientos de los cilindros con la siguiente consulta:
La consulta devuelve los datos deseados y a una buena velocidad aun con más de 10000 registros que devuelve (Es una consulta inicial aun sin aplicarle filtros; lo que pienso hacer). Pero viendo el plan encontré esto:
Ósea que hay un encuentro natural en la tabla de Clientes que se utiliza dos veces en la consulta (CP1 cliente a quien se le presto un cilindro; y Cp2 propietario del cilindro). El caso es que al quitar alguna de las referencias dejando solo una tabla ya no me muestra el encuentro natural. Como dije la consulta se muestra bien pero a futuro cuando la tabla tenga muchos más registros puede que empiecen los problemas. La verdad no se qué camino debo tomar para solucionar esto. Ya probé crear otro índice para el campo Id_cliente pero sigue igual. Espero su consejo Desde ya gracias por la atención prestada Última edición por Casimiro Notevi fecha: 17-05-2012 a las 09:51:52. |
#2
|
|||
|
|||
Hola
No enseñas la tabla MOVCILINDROS pero creo que te falta una FOREIGN KEY nomdestino contra CLIEPROV (ID_CLIENTE) Saludos |
#3
|
||||
|
||||
Si tienes razon aqui esta la definicion. Si defino las claves foraneas
Agrego q todos los campos incluidos en los joins corresponden con claves foraneas |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Imprimir dos veces en la misma pagina | Vlady | Impresión | 10 | 19-02-2014 16:27:47 |
evitar ejecutar la misma aplicacion 2 veces | noe | API de Windows | 13 | 26-05-2008 19:30:03 |
Abrir la misma ventana varias veces | subzero | Varios | 8 | 30-10-2007 20:05:27 |
como usar un dbrowse con dbedit en la misma tabla | mcantob | C++ Builder | 0 | 23-11-2006 19:47:34 |
ejecutar aplicacion 2 veces en misma maquina | maruenda | Varios | 1 | 07-02-2004 19:19:24 |
|