Come implementare nomi utente univoci da un elenco di frasi

-1

Sto cercando di creare un nome utente casuale basato su un insieme di frasi esistenti più un numero intero poiché possono esserci più utenti con la stessa frase. Per ora, supponiamo che ci siano 12 frasi come AnonymousPotato , quindi un utente che si iscrive potrebbe ricevere in modo casuale AnonymousPotato12345 come nome utente univoco. L'utente verrebbe memorizzato in una tabella MySQL che ha una chiave primaria int incrementata automaticamente. Ho pensato di utilizzare l'id, ma non penso che esporre l'id dell'utente sia una buona idea in quanto potrebbe esporre informazioni come il numero di utenti esistenti.

Il problema che sto cercando di risolvere è la collisione. Come posso garantire che il nome utente generato sia unico senza dover esporre un ID di database auto incrementato?

    
posta AnonymousCoward 16.04.2018 - 05:24
fonte

1 risposta

4

Se vuoi assicurarne l'unicità, ti vengono immediatamente in mente due modi:

  • pre-genera 1.000.000 nomi utente univoci (o qualsiasi importo tu pensi che potrebbe essere necessario). Quando un utente si iscrive, estraene uno dall'elenco e contrassegnalo come usato.

  • Dopo averne generato uno, controlla semplicemente se è già presente nel database, e se lo è, riprova e continua a provare finché ne hai uno unico.

Sono d'accordo con te, probabilmente non dovresti usare l'id utente come ID pubblico. Quello che faccio di solito è assegnare un guidatore pubblico di fronte (in una colonna chiamo 'public_hash', di solito un hash del nome utente e qualche altra informazione) a quell'utente, che viene usato negli URL pubblici.

    
risposta data 16.04.2018 - 05:35
fonte

Leggi altre domande sui tag