|
|
|
Guid без четырех байт + int = Уникальный ключ?
|
|||
|---|---|---|---|
|
#18+
Вечер добрый! Есть приложение А, которое в качестве первичных ключей использует GUID’ы. И есть приложение Б, которое в качестве первичных ключей использует int32. Сами по себе эти приложения вполне нормально работали. Но сейчас возникла задача передавать из приложения Б в приложение А данные для хранения и последующей обработки. Есть много нюансов зачем это нужно, а вопрос такой: Если сгенерировать GUID для каждой из таблиц приложения Б, затем взять от них первые 12 байт и оставшиеся четыре байта дополнить первичным ключом типа int32, что в сумме дает те же 16 байт, то получившееся значение будет обладать свойствами GUID’а (уникальностью)? Или в GUID важна сама последовательность в целом? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.09.2010, 21:44 |
|
||
|
Guid без четырех байт + int = Уникальный ключ?
|
|||
|---|---|---|---|
|
#18+
Guid__Вечер добрый! Есть приложение А, которое в качестве первичных ключей использует GUID’ы. И есть приложение Б, которое в качестве первичных ключей использует int32. Сами по себе эти приложения вполне нормально работали. Но сейчас возникла задача передавать из приложения Б в приложение А данные для хранения и последующей обработки. Есть много нюансов зачем это нужно, а вопрос такой: Если сгенерировать GUID для каждой из таблиц приложения Б, затем взять от них первые 12 байт и оставшиеся четыре байта дополнить первичным ключом типа int32, что в сумме дает те же 16 байт, то получившееся значение будет обладать свойствами GUID’а (уникальностью)? Или в GUID важна сама последовательность в целом?Завести поле ГУИД в Б и передавать Или завести целое поле в А и передавать ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.09.2010, 22:39 |
|
||
|
Guid без четырех байт + int = Уникальный ключ?
|
|||
|---|---|---|---|
|
#18+
alexeyvg, я же написал - есть нюансы: гуид в Б создать пока нельзя. Можно ли обойтись таким решением, которое я написал? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.09.2010, 07:19 |
|
||
|
Guid без четырех байт + int = Уникальный ключ?
|
|||
|---|---|---|---|
|
#18+
Guid__alexeyvg, я же написал - есть нюансы: гуид в Б создать пока нельзя. Можно ли обойтись таким решением, которое я написал?В принципе да, можно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.09.2010, 08:34 |
|
||
|
Guid без четырех байт + int = Уникальный ключ?
|
|||
|---|---|---|---|
|
#18+
Более того, в качестве 12 добавочных байт можно взять любую константу, которая наверняка не встретится среди имеющихся и будущих записей, например, все нули. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.09.2010, 10:35 |
|
||
|
Guid без четырех байт + int = Уникальный ключ?
|
|||
|---|---|---|---|
|
#18+
miksoftБолее того, в качестве 12 добавочных байт можно взять любую константу, которая наверняка не встретится среди имеющихся и будущих записей, например, все нули.На самом деле вероятность того, что встретятся все нули абсолютно такая-же как и для любого набора символов. Фактически гарантируемая уникальность GUID означает, что какой-бы GUID вы не придумали, он никогда и нигде не встретится :-) Хотя на практике ктож его знает... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.09.2010, 10:46 |
|
||
|
Guid без четырех байт + int = Уникальный ключ?
|
|||
|---|---|---|---|
|
#18+
alexeyvgmiksoftБолее того, в качестве 12 добавочных байт можно взять любую константу, которая наверняка не встретится среди имеющихся и будущих записей, например, все нули.На самом деле вероятность того, что встретятся все нули абсолютно такая-же как и для любого набора символов.Если бы GUID-ы были абсолютно случайны - да. Но на практике GUID-ы генерятся по определенным правилам, которые резко снижают вероятность всех нулей. Например, MAC-адреса, которые в ряде случаев используются при генерации GUID-ов, распределены далеко не равномерно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.09.2010, 10:49 |
|
||
|
Guid без четырех байт + int = Уникальный ключ?
|
|||
|---|---|---|---|
|
#18+
miksoftalexeyvgmiksoftБолее того, в качестве 12 добавочных байт можно взять любую константу, которая наверняка не встретится среди имеющихся и будущих записей, например, все нули.На самом деле вероятность того, что встретятся все нули абсолютно такая-же как и для любого набора символов.Если бы GUID-ы были абсолютно случайны - да. Но на практике GUID-ы генерятся по определенным правилам, которые резко снижают вероятность всех нулей. Например, MAC-адреса, которые в ряде случаев используются при генерации GUID-ов, распределены далеко не равномерно.Дело в том, что начало GUID не является мак-адресом. GUID - это хэш от каких-то других данных. Ну а хэшу почему бы не начинаться с нулей? То есть цифры в GUID-е подчиняются математическим правилам, а не административным. Для не-административных правил что 0, что 9 - абсолютно равнозначно, ведь математика не считает байт 0х00 предпочтительнее байта 0хА9 Это человек (вот как вы :-) ) может по каким то причинам для некоего специального значения взять число 0х000000000000 вместо абсолютно равновероятного числа 0х861045235214 ЗЫ. Я как то делал выборку из одной таблицы с GUID-ом с сортировкой по нему - там у первых записей было довольно много нулей, хотя конечно не 12. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.09.2010, 12:13 |
|
||
|
Guid без четырех байт + int = Уникальный ключ?
|
|||
|---|---|---|---|
|
#18+
alexeyvgGUID - это хэш от каких-то других данных.Не всегда. Существовали алгоритмы генерации GUID, где MAC-адрес тупо конкатенировался с остальными частями GUID-а. А вообще, попалась мне тут на глаза любопытная ссылка - http://www.gotdotnet.ru/blogs/denish/1965/ Там описывается, что все оно не настолько случайно, как кажется. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.09.2010, 12:33 |
|
||
|
Guid без четырех байт + int = Уникальный ключ?
|
|||
|---|---|---|---|
|
#18+
miksoftalexeyvgGUID - это хэш от каких-то других данных.Не всегда. Существовали алгоритмы генерации GUID, где MAC-адрес тупо конкатенировался с остальными частями GUID-а.Да, это я знаю; я говорил про современный алгоритм. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.09.2010, 13:45 |
|
||
|
Guid без четырех байт + int = Уникальный ключ?
|
|||
|---|---|---|---|
|
#18+
alexeyvgДа, это я знаю; я говорил про современный алгоритм.И даже в современных алгоритмах не может быть 12 нулевых байт. См. ссылку. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.09.2010, 13:50 |
|
||
|
Guid без четырех байт + int = Уникальный ключ?
|
|||
|---|---|---|---|
|
#18+
miksoftalexeyvgДа, это я знаю; я говорил про современный алгоритм.И даже в современных алгоритмах не может быть 12 нулевых байт. См. ссылку.Да, надо-же... Спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.09.2010, 14:00 |
|
||
|
|

start [/forum/topic.php?fid=32&fpage=70&tid=1542540]: |
0ms |
get settings: |
11ms |
get forum list: |
18ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
69ms |
get topic data: |
9ms |
get forum data: |
3ms |
get page messages: |
46ms |
get tp. blocked users: |
1ms |
| others: | 240ms |
| total: | 405ms |

| 0 / 0 |
