Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MariaDB] czym zastąpić primary key autoincrement
Forum PHP.pl > Forum > Przedszkole
szczemp
Planuję bazę danych, dość prostą , bo tylko z jedną tabelą. Ale chciałbym, żeby poszczególne wpisy miały jakiś alfaumeryczny id, tak żeby nie można było ich enumerować.
Myślałem, żeby przepuszczać 'coś' przez 'jakąś' funkcję skrótu. Ale 'co' i przez 'jaką' funkcję? A może to się inaczej robi?
nospor
Masz na mysli UUID?
szczemp
Na pierwszy rzut oka chyba o to mi chodzi. Z tego co widzę, to w ciągu pojawiają się separatory w postaci '-'. Można bez nich? I ja kaki ciąg przechowywać, można w varchar?
nospor
mozesz bez nich.
UUID jest stalej dlugosci wiec nie varchar araczej char
szczemp
A jeszcze powiedz jak to jest generowane, bo zrobiłem prostą próbę i widzę, że dość podobne wartości są zwracane. Tylko w pierwszym segmencie widzę zmiany. I to gdy generuję w jakimś odstępie czasu. Jeśli zrobię
  1. SELECT UUID() AS u1, UUID() AS u2
to wartości są bardzo blisko siebie.
Pewne jest, że nie wygeneruje mi dwóch takich samych ciągów? Wynik pewnie zależy od czasu. Czy nie prościej przepuścić czas inserta przez choćby md5?
nospor
https://dev.mysql.com/doc/refman/5.7/en/mis...l#function_uuid
masz tam wszystko napisane

Cytat
Two calls to UUID() are expected to generate two different values, even if these calls are performed on two separate devices not connected to each other.
viking
Kod
Warning

Although UUID() values are intended to be unique, they are not necessarily unguessable or unpredictable. If unpredictability is required, UUID values should be generated some other way.


Mysql dalej się nie dorobił typu danych do przechowywania uuid? Po stronie phpa masz bibliotekę https://uuid.ramsey.dev/en/latest/introduction.html
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.