Эффективная генерация уникальных ключей для записей базы данных

В настоящее время я разрабатываю прототип системы регистрации. Это очень упрощенно и, по сути, представляет собой просто форму .NET, которая записывается в MongoDB.

Я застрял с эффективным способом создания уникального идентификатора/ключа для каждого пользователя. Эти идентификаторы должны быть удобными для человека, поэтому что-то вроде 7-символьной буквенно-цифровой строки, например. А1В2С3Х.

Решения, которые я видел до сих пор, просто используют простую функцию для генерации случайной строки, а затем проверяют базу данных, чтобы увидеть, является ли она уникальной (и если нет, то повторяйте, пока не найдете уникальную). Это, конечно, будет становиться все более и более дорогостоящим в вычислительном отношении по мере роста количества записей в базе данных.

Моя идея состоит в том, чтобы предварительно вычислить набор уникальных идентификаторов и сохранить его в другой базе данных. Затем, когда мне нужно добавить новую запись в пользовательскую базу данных, я могу «вытолкнуть» идентификатор из моей базы данных идентификаторов (в постоянное время) и знать, что он еще не существует в пользовательской базе данных без необходимости его поиска.

Я уверен, что кто-то уже делал что-то подобное раньше. Есть ли способ лучше? Я не знаю, почему я так борюсь с этим. Ваш вклад очень ценится.

7
задан Community 22 September 2017 в 17:57
поделиться