Ok, creo que lo he entendido bastante bien.
Respondiendo a lo que me preguntabas,
quimfv:
Cita: Si explicas como se calcula o de donde sale esa "posición" quizas encontrariamos otras formas de hacerlo.
La posicion sale de un ordenado standart de datos, como por ejemplo podria ser el nº de mensajes publicados aqui, o los puntos (antiguo karma).
No dispongo ahora mismo del codigo pero es algo muy parecido a esto:
Código SQL:
Ver originalSELECT nombre, experiencia AS total FROM usuarios ORDER BY total DESC
Luego le asigno a cada usuario la posicion y hago el UPDATE (con un CONCAT).
El motivo de "la guarrada esa" de guardar las antiguas posiciones es para tener un historial de dicha posicion.
Por otro lado, en esto que me comentas,
gnzsoloyo:
Cita: ...a menos que un mismo usuario pueda tener la misma fecha más de una vez al mismo tiempo...
Resulta que esa posicion sí que se actualiza varias veces al día, pero os habeis explicado ambos bastante bien y creo que "lo he pillado".
Deberia (en total) hacer algo como lo siguiente:
Campos:
ID
dia
numero de actualizacion
posicion
<-- ID es una FK
<--(ID,dia,num.actualizacion) es una PK compuesta.
Bueno, muchisimas gracias a ambos pq llevaba ya bastante tiempo dandole vueltas a esto y en unos minutos me lo habeis resuelto.