Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Diferencial respecto a un valor actual ¿como lo hacen?

Estas en el tema de Diferencial respecto a un valor actual ¿como lo hacen? en el foro de PHP en Foros del Web. Buenas! Hay paginas web, que incluyen rankins respecto a "puntuaciones" (votos/puntos, lo que sea) por dias/meses/años, es decir, ofrecen un diferencial para rankear. Como lo ...
  #1 (permalink)  
Antiguo 16/02/2013, 13:24
Avatar de Albuss  
Fecha de Ingreso: enero-2012
Ubicación: Coruña
Mensajes: 475
Antigüedad: 12 años, 3 meses
Puntos: 30
Pregunta Diferencial respecto a un valor actual ¿como lo hacen?

Buenas!

Hay paginas web, que incluyen rankins respecto a "puntuaciones" (votos/puntos, lo que sea) por dias/meses/años, es decir, ofrecen un diferencial para rankear.


Como lo hacen? , si php no se esta ejecutando siempre, es decir, php es usado como script en el sentido de que es llamado por el cliente, necesita ese "evento" para actualizars, quizas me equivoque.


Me es imposible ver como se hacen este tipo de operaciones.
  #2 (permalink)  
Antiguo 16/02/2013, 14:02
Avatar de dashtrash
Colaborador
 
Fecha de Ingreso: abril-2007
Ubicación: Ni en Sevilla,ni en Sanlúcar..qué más da..
Mensajes: 927
Antigüedad: 17 años
Puntos: 270
Respuesta: Diferencial respecto a un valor actual ¿como lo hacen?

Un ranking se puede calcular desde cero cuando se necesita.Es decir, cuando alguien lo consulta.No tiene por qué recibir "eventos" para "actualizarse".
Dependiendo del modelo de ranking, sin embargo, puede ser más o menos difícil de calcular "en caliente" (cuando se pide), por lo cual puede precalcularse.Y actualizarlo cuando llega lo que llamas un "evento"...y que no es más que una petición al servidor de alguien que ha votado, o puntuado a otro alguien..Lo que llamas evento, es una request get o post..nada más..

Tenerlo con respecto a días, meses, o años, no es más que tener una tabla donde guardas usuario/dia/votos-recibidos-en-ese-dia.Teniendo eso, puedes hacer el ranking existente hace un mes, dos semanas, o lo que quieras.

Última edición por dashtrash; 16/02/2013 a las 14:08
  #3 (permalink)  
Antiguo 16/02/2013, 15:13
Avatar de Albuss  
Fecha de Ingreso: enero-2012
Ubicación: Coruña
Mensajes: 475
Antigüedad: 12 años, 3 meses
Puntos: 30
Respuesta: Diferencial respecto a un valor actual ¿como lo hacen?

precisamente, en sql tenia previsto adjutar la "puntuacion" a una fecha, pero de aqui se saca una ovbiedad, si en php mando crear filas para una tabla con cada puntacion para idem fecha, la cantidad de filas seria ingente, ¿me equivoco?
  #4 (permalink)  
Antiguo 16/02/2013, 15:42
Avatar de dashtrash
Colaborador
 
Fecha de Ingreso: abril-2007
Ubicación: Ni en Sevilla,ni en Sanlúcar..qué más da..
Mensajes: 927
Antigüedad: 17 años
Puntos: 270
Respuesta: Diferencial respecto a un valor actual ¿como lo hacen?

Ingente..? Digamos, 10 millones de registros, que puedes particionar bien (por fecha), y en una tabla con campos de tamaño fijo..? No hay problema.
  #5 (permalink)  
Antiguo 16/02/2013, 17:06
Avatar de Albuss  
Fecha de Ingreso: enero-2012
Ubicación: Coruña
Mensajes: 475
Antigüedad: 12 años, 3 meses
Puntos: 30
Respuesta: Diferencial respecto a un valor actual ¿como lo hacen?

10millones de registros? , jdoer, no se supone que SQL es para cosas "brugales" tenia entendido que a partir de 100k-500k ya era aconsejable meterse a DB no relacionales .. Mongo o Maria DB , es que me acabas de fulminar los limites que tenia establecidos para una DB normal xD


Entonces esto seria asi : , php crea una fila nueva por cada voto en una tabla unica de votos, cada voto tiene la direccion ("usuario/tema/lo que sea") de aquien va dirigido y la fecha, lo unico que tendria que hacer para tener un diferencial (ranking page) es desde php hacer una Query en esa tabla? , una tabla para todos los votos? no se, aun estoy en shiock ( soy de esos que tenian la preocupacion de meter en una tabla todo lo esencial para optimizar, vease en este caso, tenia pensado que los votos fueran dentro de la tabla usuarios en cada fila).
  #6 (permalink)  
Antiguo 16/02/2013, 17:25
Avatar de dashtrash
Colaborador
 
Fecha de Ingreso: abril-2007
Ubicación: Ni en Sevilla,ni en Sanlúcar..qué más da..
Mensajes: 927
Antigüedad: 17 años
Puntos: 270
Respuesta: Diferencial respecto a un valor actual ¿como lo hacen?

Que a partir de 100k es "aconsejable" meterse con DB no relacionaleees? No sé quien te dió a entender eso, pero deja de oirle...Es más, ve dejando el criterio de "numero de filas" como criterio para decidir entre relacional y no relacional..
Es más...haz el diseño no relacional de un ranking .(Hay algo más relacional que un ranking?)
No es eso lo que he dicho.Si lo que quieres es un *ranking por dia*, no te hace falta saber uno a uno el tema en el que se produjo un voto en concreto.Necesitas usuario-dia-numero de votos recibidos.
Lo esencial para optimizar es leerse el manual de mysql, leer mucho sobre optimización de índices y queries, entender el engine en el que están tus tablas...
  #7 (permalink)  
Antiguo 16/02/2013, 17:39
Avatar de Albuss  
Fecha de Ingreso: enero-2012
Ubicación: Coruña
Mensajes: 475
Antigüedad: 12 años, 3 meses
Puntos: 30
Respuesta: Diferencial respecto a un valor actual ¿como lo hacen?

oks, me pongo a ello! gracias.

Etiquetas: actual, valor
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 07:54.