2011-09-17 7 views

Odpowiedz

11

Możesz po prostu użyć swojego identyfikatora obrazu auto_increment, przekonwertowanego na base58 (a-zA-Z0-9) na przykład.

base_convert można konwertować do base36:

$id = base_convert(123456789, 10, 36); // "21i3v9" 

(Patrz także PHP - How to base_convert() up to base 62)

Jeśli chcesz non-przewidywalne identyfikatory graficznych, spojrzeć na this answer.


Dla MongoDB identyfikatorów (jak używasz MongoDB):

Identyfikatory są numery 12 bajtów, kodowane do base16, co czyni je 24 bajtów.

Można kompresować je do 17 bajtów, poprzez przekształcenie ich z base16 do base58:

gmp_strval(gmp_init("47cc67093475061e3d95369d", 16), 58)); // "1KXotnQBQbcPmeOo9" 

wziąć również do obejrzenia Liczb Sequence sekcja here. Umożliwi to wygenerowanie mniejszych unikatowych numerów obrazów.

+0

Ale ... Jestem za pomocą MongoDB, istnieje unikalne pole id takie jak "shkxjfhsuhgh", więc nie jest to liczba całkowita – michael

+0

, a następnie, dlaczego go nie używać? – arnaud576875

+0

zaktualizowana odpowiedź. – arnaud576875

Powiązane problemy