28 October 2006

Datos en driza....

Hoy tengo una duda. Una de estas dudas largas y pesadas que cuestan leer.

Gracias por llegar a esta linea.

En driza los datos que maneja el usuario pueden ser consultados de varias maneras. Por ejemplo, si estuviesemos hablando de llamadas de telefono recibidas en una oficina :

  • Existe un conjunto de atributos o campos, que representarian las cualidades de cada llamada (Hora de la llamada, duracion, persona que atendio la llamada)
  • Existe un conjunto de registros, es decir, un conjunto de llamadas de telefono. Todas las  llamadas tienen todos los atributos citados en el punto anterior (aunque alguno con valor nulo... pero el atributo esta ahí)

Resumiendo, tenemos dos listas: Una de variables, y otra de registros. Y ahora viene el problema:
Necesito poder coger un atributo de todos los registros. Algo en plan listaregistros["Hora"] y que me devuelva las horas de todos los registros.

Bueno, ese no era el problema, lo resuelvo facilmente en python con un for (el parametro sería "Hora"):

def funcion(self,parametro): return[x[parametro] for x in listaregistro]

El problema es que a mi me puede interesar tener condiciones de filtrado del tipo...: todas las horas de las llamadas de telefono que superen los 10 minutos de duración. La solución menos general que se me ocurre es añadirlo a la expresión anterior y escribirla cada vez que la necesite

[x["hora"] for x in listaregistro if x["duracion"]>10]

Pero claro, puede ser que haya más de una condición que cumplir, y necesito algo más general, una función que al pasarle un parametro o una ristra sepa que eso es un filtro. Una funcion a la que le metas algo como esto y que te devuelva las horas:
select hora from listaregistro where duracion>10

(Cualquier parecido con SQL es coincidencia). El inconveniente de esta solucion hipergeneral es que es muy complicada de implementar (Interpretar la ristra y todo eso)

En resumen, tengo que encontrar algo intermedio, que sea más o menos flexible y más o menos facil de implementar.

1 comment:

Emilio said...

Hola Néstor,

No se sí has oido hablar de Velázquez Visual. Tiene un componente u objeto, llamado rejilla, el cual lleva incorporado ya un motor de búsqueda(sólo con incluir la rejilla en el proyecto, asociada a una tabla, ya tienes los datos de la tabla visualizándose y con un motor que viene con el componente u objeto).

La interfaz es muy cómoda, aunque no tiene consultas complejas(que por otra parte, se soluciona rápidamente). Creo que te podría resultar útil (algo sencillo, útli, y aparentemente, fácil de implementar)

El lenguaje fue creado por Velázquez Visual y actualmente se llama Velneo. Va por una versión avanzada(v8 creo), pero las que interesan son las anteriores.Te dejo el enlace a Velneo(por cierto, es tecnología española).

Un saludo y suerte con el proyecto!