Store-UUID v4 in MySQL

Ich bin Generierung von UUIDs mit PHP, pro die Funktion gefunden hier

Nun will ich speichern, die in einer MySQL-Datenbank. Was ist die beste/effizienteste MySQL-Feld " format für die Speicherung von UUID-v4?

Momentan habe ich den Datentyp varchar(256), aber ich bin mir ziemlich sicher, dass die viel größer als notwendig. Ich habe festgestellt, viele fast-Antworten, aber Sie sind in der Regel mehrdeutig, über welche form von UUID, die Sie sich beziehen, so bitte ich um die spezifischen format.

wenn Sie nur zufällige Token von einer Art, Sie brauchen keine uuid bei allen. ein varchar256 nicht 256 bytes, so 'zu groß' ist wahrscheinlich nicht, dass große Sache.
Sie brauchen nicht die uuid-nichts für, dass. Nur zufällige bytes. Sie können speichern Sie Sie als hex oder was auch immer. php.net/manual/en/function.random-bytes.php
Holen Sie sich einen 16-random bytes. Speichern als hex. Das ist es. Vergessen Sie nicht, zu werfen, aus der db-sobald die Anmeldung erfolgt ist. Oh, und übergeben als get-request, wie die Antwort suggeriert, denn das ist verrückt.
MySQL bietet die Funktion UUID() so brauchen Sie nicht PHP zu generieren. Sie können Bindestriche entfernen und speichern Sie die hex-Zahl als binary(16). Wenn Sie es über trigger, es ist SELECT UNHEX(REPLACE(UUID(), '-', '')); machen es unique wenn Sie den index, Gewinn.
Das ist ein UUID1. random_bytes ist aus der OS CSPRNG das ist, was Sie wollen, in diesem Fall.

InformationsquelleAutor Stephen R | 2017-03-27

Schreibe einen Kommentar