Удобный для пользователя уникальный идентификатор для DynamoDB - PullRequest
0 голосов
/ 20 июня 2019

В моей таблице DynamoDB с именем users мне нужен уникальный идентификатор, который легко запомнить пользователям.

В СУБД я могу использовать идентификатор автоматического увеличения для удовлетворения требования.

Поскольку в DynamoDB нет способа автоматически идентифицировать идентификатор, есть ли способ удовлетворить это требование?

Если я сохраню последний использованный идентификатор в другой таблице (lastIdTable), извлеките его перед добавлением нового документаувеличьте это число и сохраните обновленные номера в обеих таблицах (lastIdTable и users), что будет очень неэффективно.

ОБНОВЛЕНИЕ

Обратите внимание, что естьнет способа использовать существующий атрибут или получать от пользователей информацию для этой цели.

Ответы [ 2 ]

1 голос
/ 01 июля 2019

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

Например, вы можете сгенерировать фразу правильный скобы батареи лошади . (Я знаю, что это идентификатор пользователя, а не пароль, но соображение запоминаемости все еще применимо.)

https://imgs.xkcd.com/936/

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

0 голосов
/ 20 июня 2019

адрес электронной почты кажется лучшим выбором ...

Либо в качестве ключа раздела, либо используйте GUID в качестве ключа раздела и иметь глобальный вторичный индекс по адресу электронной почты.

Или, как предложил Мэтью в комментарии, пусть пользователи выбирают имя пользователя.

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