PHP/MySQL: Хранение и получение UUIDS

Я пытаюсь добавить UUID к нескольким таблицам, но я не уверен, каковы лучший способ хранить/получать они были бы. Я понимаю, что намного более эффективно использовать ДВОИЧНЫЙ ФАЙЛ (16) вместо VARCHAR (36). После проведения небольшого количества исследования я также нашел, что можно преобразовать строку UUID в двоичный файл с:

 UNHEX(REPLACE(UUID(),'-',''))

Простите мое незнание, но есть ли простой способ к этому с PHP, и затем повернитесь спиной к строке, при необходимости, для удобочитаемости?

Кроме того, это имело бы много значения, если бы я использовал это в качестве первичного ключа вместо auto_increment?

Править:

Найденная часть ответа:

 $bin = pack("h*", str_replace('-', '', $guid));

Как Вы распаковали бы его?

7
задан Greg 15 May 2010 в 05:37
поделиться

1 ответ

Хорошо - попробую ответить на свой вопрос. Это лучшее, что я мог придумать:

Пакет:

$binary =  pack("h*", str_replace('-', '', $string));

Распаковать

$string = unpack("h*", $binary);
$string = preg_replace("/([0-9a-f]{8})([0-9a-f]{4})([0-9a-f]{4})([0-9a-f]{4})([0-9a-f]{12})/", "$1-$2-$3-$4-$5", $string);

Есть какие-нибудь проблемы с этим, кто-нибудь может увидеть?

12
ответ дан 6 December 2019 в 12:46
поделиться
Другие вопросы по тегам:

Похожие вопросы: