{"id":83,"date":"2010-02-25T09:44:56","date_gmt":"2010-02-25T08:44:56","guid":{"rendered":"http:\/\/www.webmaid.de\/?p=83"},"modified":"2010-02-25T09:47:11","modified_gmt":"2010-02-25T08:47:11","slug":"uuid_php_mysql","status":"publish","type":"post","link":"https:\/\/www.webmaid.de\/2010\/02\/uuid_php_mysql\/","title":{"rendered":"Universally Unique Identifier (UUID) in PHP und MySQL"},"content":{"rendered":"

Universally Unique Identifier (UUID) ben\u00f6tigt man zum Erstellen von eindeutigen IDs \u00fcber Systemgrenzen hinweg. Ein UUID<\/a> besteht aus einer 16-Byte-Zahl, die hexadezimal notiert und in f\u00fcnf Gruppen unterteilt wird. Die Notation ist in der RFC 4122<\/a> wiedergegeben.
\n<\/p>\n

MySQL<\/h2>\n

In MySQL gibt es eine Funktion zum Erstellen von UUID<\/a>s.SELECT UUID()<\/code> w\u00fcrde z.B. eine UUID zur\u00fcckgeben. Es k\u00f6nnte 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 \u00fcber mehrere Datenbanken eindeutig ist ohne irgendwelche Replikationsmechanismen der Datenbank nutzen zu m\u00fcssen. W\u00fcrde der Key in zwei Datenbanken jedoch BIGINT UNSIGNED NOT NULL AUTO_INCREMENT UNIQUE (aka SERIAL :)) lauten, so w\u00fcrde es definitiv zu \u00dcberschneidungen in den Datenbanken kommen.<\/p>\n

PHP<\/h2>\n

Man k\u00f6nnte sich nun die M\u00fche machen und die Funktion in PHP gem\u00e4\u00df RFC 4122 zu implementieren – zu sp\u00e4t \ud83d\ude42 Die M\u00fche haben sich schon andere schlaue K\u00f6pfe gemacht und als Klasse bereit gestellt. Bei der Suche im Netz habe ich zwei Varianten entdeckt: DrUUID<\/a> und UUID Generator<\/a>.
\nAu\u00dferdem kann man auch das
PECL<\/a> Package uuid<\/a> nutzen, welches jedoch die libuuid (des Projekts ext2utils<\/a>) auf dem System voraussetzt.<\/p>\n","protected":false},"excerpt":{"rendered":"

Das Tutorial beschreibt, wie man eine Universally Unique Identifier (UUID) in PHP oder Mysql erstellen kann.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[9,3],"tags":[21,89,22],"_links":{"self":[{"href":"https:\/\/www.webmaid.de\/wp-json\/wp\/v2\/posts\/83"}],"collection":[{"href":"https:\/\/www.webmaid.de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.webmaid.de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.webmaid.de\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.webmaid.de\/wp-json\/wp\/v2\/comments?post=83"}],"version-history":[{"count":5,"href":"https:\/\/www.webmaid.de\/wp-json\/wp\/v2\/posts\/83\/revisions"}],"predecessor-version":[{"id":88,"href":"https:\/\/www.webmaid.de\/wp-json\/wp\/v2\/posts\/83\/revisions\/88"}],"wp:attachment":[{"href":"https:\/\/www.webmaid.de\/wp-json\/wp\/v2\/media?parent=83"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.webmaid.de\/wp-json\/wp\/v2\/categories?post=83"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.webmaid.de\/wp-json\/wp\/v2\/tags?post=83"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}