Ver Mensaje Individual
  #4 (permalink)  
Antiguo 12/04/2013, 13:46
oms02
 
Fecha de Ingreso: junio-2010
Mensajes: 373
Antigüedad: 13 años, 10 meses
Puntos: 11
Respuesta: cumpliendo la 1FN (atomicidad)

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 original
  1. SELECT 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.