La tua preoccupazione, che "la maggior parte dell'UUID è inutile e sta sprecando spazio" è inerente alla dimensione del tipo di dati. Non sarai mai in grado di avere tante voci nel tuo database, come consente il limite teorico di 16 byte.
In effetti, l'UUID V1 è più adatto di V4 se si utilizza l'UUID solo come ID tabella, poiché utilizza l'indirizzo MAC e il timestamp per prevenire conflitti. Nella V4 non esiste un tale meccanismo, anche se praticamente non devi nemmeno preoccuparti troppo degli scontri :) Dovresti usare l'UUID V4 invece di V1 se hai bisogno che il tuo UUID sia imprevedibile.
Inoltre, tieni presente che comporre ad esempio valori casuali di 4x4 byte potrebbe non essere la stessa cosa che creare un valore casuale di 16 byte. Come sempre con crittografia e casualità:sconsiglio di implementare la tua routine UUID::V4.
Se installato sulla tua macchina, puoi utilizzare il php-uuid
pacchetto.
Un codice di esempio (che può essere utilizzato nella tua applicazione così com'è) può essere trovato qui:http://rommelsantor.com/clog/2012/02/23/generate-uuid-in-php/
Usalo in questo modo:
$uuid = uuid_create(1);
Gli utenti che sono in grado di installare pacchetti sul proprio server web, possono installare il pacchetto richiesto, come:(qui per Ubuntu)
apt-get install php5-dev uuid-dev
pecl install uuid