
22/07/2009, 03:19
|
 | | | Fecha de Ingreso: noviembre-2008 Ubicación: 127.0.0.1
Mensajes: 296
Antigüedad: 16 años, 3 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 |