![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
![]() |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
|
|
#1
|
||||
|
||||
|
y por qué no tienes una tabla con los nombres y su campo código, ese sería el índice que estaría relacionado con la tabla de proyectos
¿o acaso no he entendido bien el problema?
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
|
#2
|
||||
|
||||
|
Creo que la idea que te da Casimiro es buena, ya que el planteamiento actual es prácticamente inviable. En cuanto al tema índices, pues resulta que las consultas no los utilizan, yo al menos he hecho pruebas de rendimiento con índices y sin ellos y el tiempo era exactamente el mismo, (estamos hablando de Paradox).
Un Saludo.
__________________
Guía de Estilo de los Foros Cita:
|
|
#3
|
||||
|
||||
|
Yo también considero que el punto central aquí es el planteamiento de la estructura relacional. Y por lo que colijo, no se trataría de añadir sólamente la tabla de nombres sino además una tabla asociativa ya que parece que la relación entre proyectos y empleados es n-n.
Tendrías tus tablas: Código:
empleados = (id, nombre) proyectos = (id, descripcion) asignaciones = (empleado_id, proyecto_id)
Y usas el id obtenido para buscar en la tabla de asignaciones:
Con lo que obtienes la lista de ids de los proyectos en que participó el empleado. Por supuesto puedes usar joins para obtener directamente los proyectos, por ejemplo:
o directamente con el nombre del empleado:
En cualquier forma que uses ten en cuenta que la búsqueda con like puede devolverte más de un registro. Por otra parte, tal como comenta Marcos, Paradox no parece hacer uso de los índices en consultas SQL. Por ello, contrario a lo que se recomendaría en servidores SQL, en bases de escritorio resulta mucho más eficiente usar componentes TTable en lugar de TQuery, sobre todo si tus tablas son muy grandes. Para este caso, por ejemplo, podrías tener componentes tblEmpleados, tblProyectos y tblAsignaciones. Poniendo a tblEmpleados como master de tblAsignaciones, en cuanto localices al empleado (con tblEmpleados.Locate o tblEmpleados.FindKey si tienes un índice sobre el campo nombre), la componente tblAsignaciones automáticamente se filtrará con únicamente las asignaciones del empleado. Semánticamente es lo mismo que hacer la relación por SQL pero más eficiente. // Saludos |
|
#4
|
|||
|
|||
|
agradecido...
Les agradezco a todos las ideas... voy a hacer ambas pruebas... en el caso de las consultas las pasare a FB... y las mantendre para probar con Ttables... luego comento...
![]()
__________________
if Vivir = Vivir + Aprender then Aprender = ? Alfredo Borges |
![]() |
|
|
|