Генерация уникальных идентификаторов, в основном, таких как UUID, но с проверкой пространства имен - PullRequest
1 голос
/ 16 июля 2010

Я работаю над созданием базы данных, которая потенциально может содержать миллионы записей.Каждая запись будет иметь только несколько фрагментов данных (скажем, около пятнадцати строк из 50 символов).

Различные записи принадлежат одному и тому же классу объектов, но из другого «источника»;пространство имен будет захватывать эти отношения.Например, объект 1 принадлежит пространству имен 1, объект 12321 - пространству имен 2 и т. Д.

Я хочу создать уникальные идентификаторы для этих записей.

Если бы я использовал UUID версии 5,генерация UUID, прикрепленного к пространству имен, будет тривиальной.Однако нет никакого способа узнать, принадлежит ли данный UUID или нет данному пространству имен.

Затем я подумал об алгоритме, аналогичном Алгоритму Луна (тот, который используется для кредитаномера карт), который проверяет, является ли число «правильным» или «нет».

Как бы вы поступили об этом?

Требования:

  1. Все Требования к UUID
  2. Возможность проверить, принадлежит ли UUID указанному пространству имен

1 Ответ

1 голос
/ 08 января 2011

Если вы храните пространство имен в той же таблице и индексируете его, один простой запрос скажет вам, существует ли uuid в данном пространстве имен. Но разве uuid не предполагает быть уникальным? Таким образом, дубликаты не должны существовать.

...