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.
3 Réponses :
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.
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.
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.)
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.
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
perv_epstein
Holy Moly
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.