Použijte zřetězení jedinečného zvýšeného čísla a náhodně generovaného čísla.
Jedinečné zvýšené číslo zajišťuje, že výsledek je jedinečný, a díky náhodně vygenerovanému číslu je stěží uhodnutelné.
To je jednoduché a je zaručeno, že nedojde ke kolizi (1). Výsledek je přírůstkový , částečně náhodné a nepředvídatelné (za předpokladu, že část náhodného čísla je generována s dobrým PRNG).
(1):Musíte zadat buď id
a random
s nulami, nebo je oddělit nějakým nečíselným znakem.
S databází MySQL to znamená:
CREATE TABLE foo (
id int not null auto_increment,
random int not null,
...
primary key (id)
);