Вашата загриженост, че „по-голямата част от UUID е безполезна и губи място“, е присъща на размера на типа данни. Никога няма да можете да имате толкова записи във вашата база данни, колкото позволява теоретичното ограничение от 16 байта.
Всъщност V1 UUID е по-подходящ от V4, ако използвате UUID само като идентификатор на таблица - защото използва MAC-адрес и времеви печат, за да предотврати сблъсъци. Във V4 няма такъв механизъм, въпреки че на практика не е нужно да се притеснявате твърде много за сблъсъци :)Трябва да използвате V4 UUID вместо V1, ако искате UUID да бъде непредсказуем.
Също така имайте предвид, че съставянето например на произволни стойности 4x4 байта може да не е същото като създаването на произволна стойност от 16 байта. Както винаги с крипто и произволността:Бих посъветвал да не прилагате своя собствена рутина UUID::V4.
Ако е инсталиран на вашата машина, можете да използвате php-uuid
пакет.
Примерен код (който може да се използва във вашето приложение такъв, какъвто е) можете да намерите тук:http://rommelsantor.com/clog/2012/02/23/generate-uuid-in-php/
Използвайте го така:
$uuid = uuid_create(1);
Потребителите, които могат да инсталират пакети на своя уеб сървър, могат да инсталират необходимия пакет, като:(тук за ubuntu)
apt-get install php5-dev uuid-dev
pecl install uuid