Estoy trabajando en un sitio web que permite a las personas crear perfiles en línea. Me preguntaba si es la opción correcta utilizar los ID de MySQL AUTO_INCREMENT
ed como mis ID de usuario. ¿También teniendo en cuenta que podría tener que duplicar la base de datos en varios servidores un día?¿Es seguro el uso automático de mysql para usar como ID de usuario?
p. Ej. ¿usarías este método para usuarios en un sitio web como Twitter o Facebook?
He intentado generar userIds con PHP antes. Tenía algo como esto:
function generateID() {
$possible = "1234567890";
$code = "";
$characters = mt_rand(7,14);
$i = 0;
while ($i < $characters) {
$code .= substr($possible, mt_rand(0, strlen($possible)-1), 1);
$i++;
}
return $code;
}
Esto dio el tipo de valores que necesitaba, pero siempre he tenido que comprobar si la base de datos de identificación que no existe todavía.
¿No hay un mejor enfoque?
La clave primaria compuesta es una solución mucho mejor que UUID() para fusionar datos. –
Existen dos escuelas de pensamiento al respecto: o bien se utilizan claves generadas artificialmente para identificar de forma única a alguien, o bien una clave primaria compuesta. Por ejemplo, Joe Celko defiende este último enfoque. – Andrew
Gracias. Nunca he usado UUID() antes. De acuerdo con lo que vi en la mayoría de los ejemplos en Internet, crea ID largos, p. 1E8EF774581C102CBCFEF1AB81872213 ¿estoy en lo cierto? Si es así, ¿hay alguna forma de que pueda acortarlos? ¿O puede alguien referirme a un sitio web que explique mejor esta función (no creo que lo entiendo muy bien)? Gracias – Sthe