Använd en sammanlänkning av ett unikt ökat nummer och ett slumpmässigt genererat nummer.
Det unika inkrementerade numret säkerställer att resultatet är unikt, och det slumpmässigt genererade numret gör det knappast gissningsbart.
Det här är enkelt och garanterat ingen kollision (1). Resultatet är inkrementellt , delvis slumpmässigt och icke förutsägbart (förutsatt att slumptalsdelen genereras med en bra PRNG).
(1):Du måste antingen fylla i id
och random
med nollor, eller för att separera dem med något icke-siffrigt tecken.
Med en MySQL db översätts detta till:
CREATE TABLE foo (
id int not null auto_increment,
random int not null,
...
primary key (id)
);