Universally Unique Identifier (UUID) in PHP und MySQL

February 25th, 2010 by author Leave a reply »

Universally Unique Identifier (UUID) benötigt man zum Erstellen von eindeutigen IDs über Systemgrenzen hinweg. Ein UUID besteht aus einer 16-Byte-Zahl, die hexadezimal notiert und in fünf Gruppen unterteilt wird. Die Notation ist in der RFC 4122 wiedergegeben.

MySQL

In MySQL gibt es eine Funktion zum Erstellen von UUIDs.SELECT UUID() würde z.B. eine UUID zurückgeben. Es könnte jetzt die Frage aufkommen, warum man nicht einfach eine SERIAL (aka BIGINT UNSIGNED NOT NULL AUTO_INCREMENT UNIQUE) nutzt, um einen Eintrag eindeutig zu identifizieren. Der Unterschied zur SERIAL ist, dass die UUID auch über mehrere Datenbanken eindeutig ist ohne irgendwelche Replikationsmechanismen der Datenbank nutzen zu müssen. Würde der Key in zwei Datenbanken jedoch BIGINT UNSIGNED NOT NULL AUTO_INCREMENT UNIQUE (aka SERIAL :)) lauten, so würde es definitiv zu Überschneidungen in den Datenbanken kommen.

PHP

Man könnte sich nun die Mühe machen und die Funktion in PHP gemäß RFC 4122 zu implementieren – zu spät 🙂 Die Mühe haben sich schon andere schlaue Köpfe gemacht und als Klasse bereit gestellt. Bei der Suche im Netz habe ich zwei Varianten entdeckt: DrUUID und UUID Generator.
Außerdem kann man auch das PECL Package uuid nutzen, welches jedoch die libuuid (des Projekts ext2utils) auf dem System voraussetzt.

VN:F [1.9.22_1171]
Rating: 8.0/10 (1 vote cast)
VN:F [1.9.22_1171]
Rating: 0 (from 0 votes)
Universally Unique Identifier (UUID) in PHP und MySQL, 8.0 out of 10 based on 1 rating
Advertisement

Leave a Reply