Генерация уникального номера без базы данных - PullRequest
2 голосов
/ 10 декабря 2010

Как создать уникальный номер в c # без базы данных?

(макс. 17 цифр).

РЕДАКТИРОВАТЬ: только цифры.

Ответы [ 2 ]

6 голосов
/ 10 декабря 2010

Вы можете взглянуть на открытый исходный код Twitter Проект Snowflake для вдохновения, которое решает аналогичную проблему.Он написан на Scala, но упрощенная версия довольно проста для кодирования на C #.

Предположение состоит в том, чтобы получить текущую временную метку и сдвигать ее по битам влево, оставляя правые биты доступными для простого порядкового номера, который сбрасывается в 0 каждый раз, когда увеличивается отметка времени.

Играя с длинами битов и изменяя гранулярность вашей отметки времени (например, решая, использовать ли секунды или миллисекунды), вы должны быть в состоянии произвестичто-то, что может вписаться в 17 цифр довольно просто.

0 голосов
/ 10 декабря 2010

Вы можете использовать GUID, GUID (глобальный уникальный идентификатор) - это 128-разрядное целое число, которое можно использовать для уникальной идентификации чего-либо.

System.Guid.NewGuid ()

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...