Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP][MySQL] Generowanie unikalnego identyfikatora (nie liczbowego)
Agape
post
Post #1





Grupa: Zarejestrowani
Postów: 384
Pomógł: 13
Dołączył: 16.06.2006

Ostrzeżenie: (0%)
-----


Mam przykladowa baze 40 tyś rekordow, do kazdego z rekordow musze wygenerowac unikalny identyfikator, np. f87g697d.
Zalozenia:
1. Id nie moze reprezentowac liczby rekordow w bazie
2. Musi byc jak najkrótszy (bedzie wystepowal w url).
3. Musi sie szybko generowac podczas dodawania do bazy
4. Musi byc unikalny

Pytanie jak najszybciej wygenerowac taki identyfikator jezeli do bazy kazdy z rekordow dodaje pojedynczo, jeden po drugim. Dodaje je jednorazowo ale zalezy mi na szybkosci zapytan, jak dam za duze nie zmieszcza sie w czasie dzialania skryptu inne funkcje. Oczwiscie moge skorzystac np. z UUID() ale to ni spelnia punktu 2
Go to the top of the page
+Quote Post
Niree
post
Post #2





Grupa: Zarejestrowani
Postów: 220
Pomógł: 18
Dołączył: 5.02.2016
Skąd: Polska

Ostrzeżenie: (0%)
-----


  1. //pobierasz id rekordu lub jakis identyfikator z mysql
  2.  
  3. echo substr(sha1($result['id']), 0, 4);


W miejscu "4" dajesz ilość wygenerowanych znaków.

Ten post edytował Niree 23.12.2016, 17:43:10
Go to the top of the page
+Quote Post
trueblue
post
Post #3





Grupa: Zarejestrowani
Postów: 6 806
Pomógł: 1828
Dołączył: 11.03.2014

Ostrzeżenie: (0%)
-----


Może tak?
  1. SELECT CONV(UUID_SHORT(),10,36)


albo tak:
  1. SELECT CONV(UNIX_TIMESTAMP(),10,36)


Ten post edytował trueblue 23.12.2016, 17:41:17
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 20.09.2025 - 17:34