becks
@becks

Как сгенерировать уникальный число int64 ?

Знаю вопрос криво звучит, попытаюсь объяснить на пальцах.

Есть 2 хранилки, в обе нужно укладывать данные по некоторым сущностям. Часть данных по каждой сущности попадает в одну систему, часть в другую. Необходимо организовать возможность объединить данные для требуемой сущности.
Идея генерировать уникальный ключ и хранить его в обеих системах. Хотели использовать GUID. Но возникла проблема - одна из систем использует в качестве первичного ключа только int64. GUID -128 бит.

Есть ли какая-нибудь возможность генерировать уникальный int64?
  • Вопрос задан
  • 2809 просмотров
Пригласить эксперта
Ответы на вопрос 3
NYMEZIDE
@NYMEZIDE
резюме - ivanfilatov.ru
Зачем генерировать long (Int64) значение?
Если ключ long целочисленный - то просто добавляйте записи c MAX IDENTITY + 1
Ответ написан
maaGames
@maaGames
Погроммирую программы
Генерируешь GUID и берёшь для него остаток от деления на 64 битное простое число. Или ксоришь первые 64 бита со вторыми 64 битами (но тут возможны конфликты уже).
Ответ написан
Если сущностей меньше миллиона, то можно просто генерировать random int64 - шансы на коллизию - меньше 1 к 10 000 000. Я бы поставил на противоположное ;) Подробнее
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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