Ver Mensaje Individual
  #2 (permalink)  
Antiguo 22/07/2009, 03:19
Avatar de genuine_carlosV2
genuine_carlosV2
 
Fecha de Ingreso: noviembre-2008
Ubicación: 127.0.0.1
Mensajes: 296
Antigüedad: 15 años, 5 meses
Puntos: 6
Respuesta: Cuál algoritmo recomiendan ? ? ?

Buenas,

Yo añadiría un campo más a la tabla que fuese "Asignado" (de tipo booleano mismo). Entonces, cuando llegase un archivo, haría una consulta tal que así:
SELECT * FROM `usuarios` WHERE `asignado` LIKE 'false' LIMIT 1

NOTA: Lo del "LIKE 'false'" es para que se vea la condición. Deberías adaptar la sentencia a tu conveniencia.

Con eso, te aseguras que cogería un usuario de la lista que no tuviese un archivo asignado. En cada consulta, debes comprobar si te ha devuelto 1 o 0 usuarios ya que si te ha devuelto 0 usuarios, es que todos tienen un archivo asignado por lo que deberías poner todas las variables "asignado" a 'false' otra vez (esto se puede hacer con una sola linea SQL)
Desconozco la escalabilidad del algoritmo, pero para BD pequeñas, seguro que te funcionará perfectamente.

Además, si buscas hacerlo de forma consecutiva, puedes usar políticas por nombre/nick. Por ejemplo, podrías incluir un ordenamiento a la consulta:
SELECT * FROM `usuarios` WHERE `asignado` LIKE 'false' ORDER BY `nick` ASC LIMIT 1

En fin, a priori, eso es lo que se me ocurre. Un saludo ;)

Carlos