Estoy pensando la mejor forma para crear un campo ÚNICO para identificar la sesión del usuario, y quería pediros opinión.
El usuario cuando entra a la web, tiene un campo para introducir a través de formulario un código de 3 cifras, que identificará a la empresa a la que pertence: AAA, al pulsar el botón entrar comprueba que tiene acceso y entra a la aplicación.
Mi idea es generar una consulta a la BD para contar en número de registros con ese código, y generar un "valor+1" para que no se repitan y sean correlativos. Los problemas que veo de este sistema son:
- Si hay un usuario que entra unos minutos después, va a tener ese mismo código porque no se guarda nada en la BD hasta finalizar un test
- Voy a tener diferente tamaño de campo según el usuario. Por ejemplo: AAA1 o AAA23 o AAA567, pero necesitaría AAA001, AAA023, AAA567.
Otra idea es generar un aleatorio de tres cifras 111 compararlo antes de insertar los datos en la BD por si existe, y enviar los datos. Problemas que veo:
- Puede darse el caso que haya dos personas que envíen los datos a la vez y que casualmente hayan generado el mismo código, por lo que fallará al enviar los datos en uno de los dos
Por último, es utilizar la función "uniqid()" de php, pero me tira para atrás que tenga que crear un campo ID de 16 caracteres (3 del id + 13 del uniqid). Es la opción más fácil para mí, pero tener un campo ID en varias tablas mySQL de tanto tamaño quizás puede ralentizar las consultas, no?
¿Qué inconvenientes veis vosotros?
Graciaaas!!
JC