Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Único, imprevisível, 12 dígitos, ID inteiro


Use uma concatenação de um número incrementado exclusivo e um número gerado aleatoriamente.

O número incrementado exclusivo garante que o resultado seja único e o número gerado aleatoriamente o torna difícil de adivinhar.

Isso é simples e com garantia de nenhuma colisão (1). O resultado é incremental , parcialmente aleatório e não previsível (desde que a parte do número aleatório seja gerada com um bom PRNG).

(1):Você precisa preencher id e random com zeros, ou separá-los com algum caractere que não seja dígito.

Com um banco de dados MySQL, isso se traduz em:
CREATE TABLE foo (
    id int not null auto_increment,
    random int not null,
    ...
    primary key (id)
);