In generale, il modo per ottenere ciò senza un brutto UUID è affidarsi al database. Con questo intendo ID autoincrement o sequenze (dipende dal database che si sta utilizzando, naturalmente). Mentre sì, è possibile assegnare i valori da soli, ma si incontrano alcune difficoltà con la concorrenza in cui deve assicurarsi che il recupero di un ID univoco sia un'operazione che non può essere eseguita contemporaneamente ad altri thread. Se desideri seguire questa strada, puoi, naturalmente, ma in genere stai persistendo in un database, quindi è altrettanto logico utilizzare gli strumenti che ti sono già stati dati.
Concettualmente l'idea è semplice. Si inseriscono i dati e si recupera il proprio ID univoco appena assegnato (idealmente nella stessa operazione). Questo id è il suo handle e non può essere riassegnato ad un'altra entità per caso.
Se questo non risponde alla tua domanda, per favore fammelo sapere nei commenti e proverò a rispondere a qualsiasi dubbio tu possa avere.
Modifica: se si desidera creare un piccolo handle per questo ID da utilizzare per l'utente, è possibile convertire l'id nella sua forma base 62 equivalente usando i numeri 0-9, lettere a-z e lettere maiuscole A-Z. Il codice risultante sarebbe sicuramente sicuramente breve e facile da ricordare.
Per fare ciò, prendi il tuo numero e prendi il modulo 62. Mappa questo resto ai valori [0-9] [A-Z] [a-z]. Dividi questo numero per 62 e, supponendo che ti sia lasciato un numero diverso da zero, ripeti il processo e aggiungi il nuovo numero / lettera a sinistra.
Ad esempio, l'ID 123456 converrebbe in W7E utilizzando questo algoritmo. Per invertire, esegui semplicemente le operazioni al contrario. Se il tuo massimo è di 8 caratteri, significa che gli ID del tuo database possono essere grandi come 218,340,105,584,895, quindi non credo che ti imbatterai in problemi di quel tipo in qualunque momento presto. :)