Ver Mensaje Individual
  #7 (permalink)  
Antiguo 08/07/2013, 16:36
Avatar de guardarmicorreo
guardarmicorreo
 
Fecha de Ingreso: noviembre-2012
Ubicación: Córdoba
Mensajes: 1.153
Antigüedad: 11 años, 5 meses
Puntos: 84
Respuesta: Generar estadisticas

Cita:
Iniciado por cleguisamon Ver Mensaje
Disculpen, por ahi me exprese mal. Lo que quiero saber es como, desde PHP, conocer cuales son los usuarios que realizan la mayor cantidad de registraciones. Algo asi como un ranking de los 5 usuarios con mas registros en la BD.
Son solamente contadores, respecto de los graficos y demas, una vez que resuelva el problema que tengo ahora voy a implementarlo. Pero la estadistica que necesito solamente se centra en contar los usuarios mas frecuentes que registran, o por ejemplo, saber cual es el tipo de tramite mas solicitado.
Uno de los tramites, por ejemplo, es la solicitud de licencias. Me gustaria saber cuales son los tipos de licencias mas frecuentes (por examen?, por razones medicas?, etc.) y una vez conocido ese dato, ponerlo en la pantalla como un tablero de comando.
Son todas cuestiones que con un contador las puedo resolver, pero todavia no pude hacerlo funcionar.
respecto a lo que he resaltado en negrita, si la tabla sobre la que vas a consultar los trámites tienes una clave foránea que enlaza con otra tabla donde estén los usuarios solamente tienes que escoger los campos que quieras de la tabla de los trámites pero también esa clave foránea, entonces cuentas las veces que una clave foránea se repite en esa tabla y luego escoges solamente los 5 usuarios que más consultas han realizado.

el problema es que tengas en la tabla de trámites miles y miles y miles de trámites y en la tabla de usuarios lo mismo. en ese caso ya no sería factible en recursos computacionales procesar una y otra vez por cada visita todas las tablas, extraer las veces que se repite la clave foránea y escoger los 5 usuarios, sería terriblemente lento, ahí es cuando entran en juego los triggers/disparadores de la base de datos.

podrías configurar un trigger relacionado con la tabla trámites para que cuando un usuario realice un nuevo trámite el trigger en otra tabla sume un punto a ese usuario, y así con todos, entonces solo tendrías que escoger a los 5 usuarios con más puntos. podrías con un trigger sumar un punto a un trámite de una tabla cada vez que se produce un evento en dicha tabla, y luego escoger directamente las 5 tablas con más puntos.

por eso lo que planteas se tiene que hacer a nivel de base de datos no de php, a nivel de php tendrías que hacerel proceso en cada vista de las estadísticas pero a nivel de base de datos ya tendrías los datos preparados.