Mysql
 sql >> Base de données >  >> RDS >> Mysql

Unique, imprévisible, 12 chiffres, identifiant entier

Utilisez une concaténation d'un nombre unique incrémenté et d'un nombre généré aléatoirement.

Le nombre incrémenté unique garantit que le résultat est unique, et le nombre généré aléatoirement le rend difficilement devinable.

C'est simple et garantie d'avoir aucune collision (1). Le résultat est incrémental , en partie aléatoire et non prévisible (à condition que la partie nombre aléatoire soit générée avec un bon PRNG).

(1) :Vous devez soit remplir id et random avec des zéros, ou pour les séparer par un caractère non numérique.

Avec une base de données MySQL, cela se traduit par :

CREATE TABLE foo (
    id int not null auto_increment,
    random int not null,
    ...
    primary key (id)
);