1
votes

Identifiant unique convivial pour DynamoDB

Dans ma table DynamoDB nommée users , j'ai besoin d'un identifiant unique, facile à retenir pour les utilisateurs.

Dans un SGBDR, je peux utiliser l'identifiant d'incrémentation automatique pour répondre à l'exigence.

Comme il n'y a aucun moyen d'avoir un ID d'incrémentation automatique dans DynamoDB, existe-t-il un moyen de répondre à cette exigence?

Si je garde le dernier identifiant utilisé dans une autre table ( lastIdTable ), récupérez-le avant d'ajouter un nouveau document, incrémentez ce numéro et enregistrez les numéros mis à jour dans les deux tables ( lastIdTable et < code> users ), ce sera très inefficace.

<₹UPDATE

Veuillez noter qu'il n'y a aucun moyen d'utiliser un attribut existant ou d'obtenir l'entrée des utilisateurs à cette fin.


2 commentaires

Pouvez-vous laisser les utilisateurs choisir leur propre nom d'utilisateur?


@MatthewPope malheureusement aucun moyen d'obtenir les entrées de l'utilisateur dans ce scénario.


3 Réponses :


0
votes

L'adresse e-mail semble le meilleur choix ...

Soit comme clé de partition, soit utiliser un GUID comme clé de partition et avoir un index secondaire global sur l'adresse e-mail.

Ou comme Matthew l'a suggéré dans un commentaire, laissez les utilisateurs choisir un nom d'utilisateur.


1 commentaires

Malheureusement, il n'y a aucun moyen d'utiliser l'attribut existant ou d'obtenir les entrées de l'utilisateur. Je mettrai à jour la question.



2
votes

Comme il semble que vous deviez créer un userId mémorable sans aucune information sur l'utilisateur, je vous recommande de créer une phrase aléatoire de 2 à 4 mots simples à partir d'un dictionnaire standard.

Par exemple, vous pouvez générer l'expression bonne agrafe de batterie de cheval . (Je sais qu'il s'agit d'un userId et non d'un mot de passe, mais la considération de mémorisation s'applique toujours.)

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

Que vous utilisiez un nombre aléatoire (qui a une mémorisation similaire à un nombre séquentiel) ou une phrase aléatoire (ce que je pense est beaucoup plus mémorable), vous devrez faire une écriture conditionnelle à la condition que l'ID ne soit pas déjà existe, et s'il existe, vous devez générer un nouvel ID et réessayer.


0 commentaires

0
votes

La stratégie de dénomination des conteneurs Docker peut vous donner une idée. https://github.com/moby/moby/ blob / master / pkg / namesgenerator / names-generator.go Il en résultera des

Exemples

awesome_einstein
nasty_weinstein
perv_epstein

uniques (limités) mais conviviaux pour l'homme: https://github.com/jjmontesl/codenamize


1 commentaires

perv_epstein Holy Moly