Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Tworzenie własnego TinyURL

Małe adresy URL lubią używać losowych tokenów, ponieważ wtedy nie można po prostu trollować małych linków URL. "Gdzie idzie numer #2?" "Fajnie!" "Gdzie idzie #3?" "Jeszcze fajniej!" Możesz wpisywać losowe znaki, ale jest mało prawdopodobne, że trafisz prawidłową wartość.

Ponieważ klucz jest raczej rzadki (4 wartości każda z 36* możliwościami daje 1 679 616 unikalnych wartości, 5 daje 60 466 176) prawdopodobieństwo kolizji jest małe (w rzeczywistości jest to pożądana część projektu), a dobry indeks SQL sprawi, że wyszukiwanie będzie trywialne (w rzeczywistości jest to podstawowe wyszukiwanie adresu URL, więc optymalizują wokół niego).

Jeśli naprawdę chcesz uniknąć wyszukiwania i po prostu wyłączyć automatyczne zwiększanie, możesz utworzyć funkcję, która zamienia liczbę całkowitą na ciąg pozornie losowych znaków z możliwością konwersji z powrotem. Tak więc „1” staje się „54jcdn”, a „2” staje się „pqmw21”. Podobne do kodowania Base64, ale bez użycia kolejnych znaków.

(*) Właściwie lubię używać mniej niż 36 znaków - pojedynczą literą, bez samogłosek i bez podobnych znaków (1, l, I). Zapobiega to przypadkowym przekleństwu, a także ułatwia komuś przekazanie wartości komuś innemu. Mapuję nawet podobne znaki, przyjmując „0” za „O”. Jeśli jesteś całkowicie oparty na maszynach, możesz użyć wielkich i małych liter oraz wszystkich cyfr, aby uzyskać jeszcze większe możliwości.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Popraw zapytanie SQL INSERT, aby uniknąć wstrzyknięć sql

  2. Jak zaktualizować tę samą tabelę po usunięciu w MYSQL?

  3. Jak skonfigurować replikację źródła-repliki w MySQL?

  4. Jaka jest różnica między wartościami nie jest zerem a nie jest zerem?

  5. Wykonywać INSERT, jeśli tabela jest pusta?