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

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

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

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

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

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

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

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

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

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

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

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

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

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


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