Ver Mensaje Individual
  #1 (permalink)  
Antiguo 31/01/2012, 12:45
cslbcn
 
Fecha de Ingreso: marzo-2008
Mensajes: 383
Antigüedad: 16 años, 9 meses
Puntos: 5
evitar id repetido en base de datos

Hola.

Tengo una base de datos en MySql con una tabla de usuario. Aunque el id de los registros es un int autoincremental, he hecho un campo "clave" donde se crea un id único para cada usuario:

Código PHP:
Ver original
  1. $clave = sha1(date("Y").date("n").date("j").date("G").date("i").date("s").rand(1,1000000));

Es poco probable que se repita el mismo valor estando codificado en sha1 pero me quiero poner en el peor de los casos.

Había pensado hacer una función recursiva. Cuando se genera el valor de la variable $clave, ejecuto una función que comprueba si ese valor esté ya usado en alguno de los registros de la tabla hasta que encuentre un valor que no esté ya almacenado.

Mi duda es, si llegara a tener una bbdd con 4 millones de usuarios o más, hacer esa comprobación retrasaría mucho la ejecución de la web? Merece la pena? Puedo estar completamente seguro de que en el 100% de los casos, no el 99.999999999999999999% de los casos, si no el 100%, nunca se va a repetir el valor de $clave ?