Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Программирование [игнор отключен] [закрыт для гостей] / UUID в NUMBER(38) / 11 сообщений из 11, страница 1 из 1
21.12.2014, 19:32
    #38839153
daunito
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
UUID в NUMBER(38)
Здравствуйте. Есть сторонняя система, из которой приходят данные с идентификатором типа uuid (128 бит). Его нужно положить в базу данных, которая поддерживает максимум number(38), который тоже 128 бит, но сам тип знаковый, соответственно его максимальное значение несколько меньше возможного uuid. Можно ли как-нибудь обрезать этот uuid, так, чтобы осталась очень низкая вероятность того, что они совпадут?
...
Рейтинг: 0 / 0
21.12.2014, 20:59
    #38839184
Anatoly Moskovsky
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
UUID в NUMBER(38)
daunito,

1) Переведите в hex или base64 и храните в виде строки.
Хотя вообще-то наиболее популярные СУБД имеют выделенный тип для UUID

2) Ну и касательно обрезки - в теории, если все ID генерятся на одном компе, то можно из UUID вырезать биты которые берутся из аппаратного адреса сетевой карты (48 бит) .
Формат по идее стандартный https://tools.ietf.org/html/rfc4122

Но лучше см. п.1
...
Рейтинг: 0 / 0
22.12.2014, 01:38
    #38839233
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
UUID в NUMBER(38)
daunito,

обычно number это числа не двоичные, и знак там не входить в число общих "бит".
т.е. 38 десятичных чисел там, и плюс еще отдельно знак.
друг дело, что и "биты" там тоже не двоичные.
...
Рейтинг: 0 / 0
22.12.2014, 01:46
    #38839237
Lepsik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
UUID в NUMBER(38)
2b63619c-02a6- 4 37b-9439-a62ade2a8b47

4 - версия гуида, ей можете пренебреч
...
Рейтинг: 0 / 0
22.12.2014, 02:28
    #38839243
ZeroMQ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
UUID в NUMBER(38)
А что СУБД-то?
...
Рейтинг: 0 / 0
22.12.2014, 15:29
    #38839772
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
UUID в NUMBER(38)
ZeroMQА что СУБД-то?
Есть только одна СУБД, использующая слово "NUMBER" вместо стандартного "NUMERIC".
...
Рейтинг: 0 / 0
22.12.2014, 15:44
    #38839791
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
UUID в NUMBER(38)
В varchar2 надо его хранить. В bin-hex кодировании.
...
Рейтинг: 0 / 0
22.12.2014, 16:05
    #38839819
JeStone
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
UUID в NUMBER(38)
daunito,

зачем вам хранить его в number? Зачем вам вообще хранить его как число?
...
Рейтинг: 0 / 0
22.12.2014, 17:46
    #38839945
DarkMaster
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
UUID в NUMBER(38)
JeStone,

А небось для того, чтобы провести с GUID`ами математические операции. Ну там на >,<,=,<> проверить. Или сложить к примеру. Если учесть то, что GUID`ы - они генерируются на основе случайных чисел - так вообще простор для творчества.

... а может на битах экономят ;)
...
Рейтинг: 0 / 0
22.12.2014, 18:06
    #38839960
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
UUID в NUMBER(38)
Объективно польза-бы существовала в расчёте на уменьшение индекса.

128 bit = 16 байт = 32 bin-hex символа

Или еще +4 символа дефис для совместимости с 6041271

16 байтного целого в ораклах нету. Есть NUMBER а это - другое с точки зрения
storage на диске.

Еще интересен вопрос по какому алгоритму берется УУИД. Есть оракловый SYS_GUID.
Есть java.util.UUID.randomUUID() или вариации на эту тему из сторонних библиотек.

Если аргументами в функцию мы пихаем Mac сетевушки то возникают вопросы
"какой сетевушки" ? И какое время учитываем? Системное? Глобальное?
Какой ГПСЧ берём? Их тоже бывает много.
...
Рейтинг: 0 / 0
23.12.2014, 15:26
    #38840714
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
UUID в NUMBER(38)
RAW(16) выигрывает в таком случае.
...
Рейтинг: 0 / 0
Форумы / Программирование [игнор отключен] [закрыт для гостей] / UUID в NUMBER(38) / 11 сообщений из 11, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]