Campo clave único para cada tabla
Buenas tardes,
Tengo una serie de tablas en las que genero un código compuesto de esta manera: "TEXTO" + AÑO + "NUMERO INCREMENTAL".
Ejemplo: AV20090000001
La función que lo realiza lo hace correctamente, obteniendo el mayor registro de la tabla, descomponiendo el número, sumándole 1 y volviendo a componer para obtener el siguiente registro.
Pensando un poco imagino que se puede dar la situación que haya más de un usuario intentando registrar al mismo tiempo datos, por lo que podría ocasionar que el mayor registro de una tabla sea el mismo devuelto para los usuarios y genera errores de MySQL.
Buscando encuentro una función "microtime()" y al parecer no se repite nunca el mismo valor (o es muy difícil que esto ocurra).
Y aquí mi pregunta:
¿Es un buen método usar microtime() para generar códigos únicos o por el contrario sería mejor poner el campo clave de las tablas como Incremental? Más que nada lo digo porque cuando requiera hacer una consulta y seleccionar los registros por el campo clave, ¿Cómo haría esto sino se exactamente el valor del campo clave?
Muchas gracias por anticipado.
Saludos.
Tengo una serie de tablas en las que genero un código compuesto de esta manera: "TEXTO" + AÑO + "NUMERO INCREMENTAL".
Ejemplo: AV20090000001
La función que lo realiza lo hace correctamente, obteniendo el mayor registro de la tabla, descomponiendo el número, sumándole 1 y volviendo a componer para obtener el siguiente registro.
Pensando un poco imagino que se puede dar la situación que haya más de un usuario intentando registrar al mismo tiempo datos, por lo que podría ocasionar que el mayor registro de una tabla sea el mismo devuelto para los usuarios y genera errores de MySQL.
Buscando encuentro una función "microtime()" y al parecer no se repite nunca el mismo valor (o es muy difícil que esto ocurra).
Y aquí mi pregunta:
¿Es un buen método usar microtime() para generar códigos únicos o por el contrario sería mejor poner el campo clave de las tablas como Incremental? Más que nada lo digo porque cuando requiera hacer una consulta y seleccionar los registros por el campo clave, ¿Cómo haría esto sino se exactamente el valor del campo clave?
Muchas gracias por anticipado.
Saludos.
1 respuesta
Respuesta de Marcelo Origoni
1