Come mantenere gli ID di prenotazione o di prenotazione unici, rivolti al cliente

-1

Sto riscontrando problemi nella creazione di un ID prenotazione univoco rivolto al cliente. È una cosa semplice da fare al back-end, dove possiamo creare un UUID e mantenere l'unicità. Ma l'UUID appare brutto dal punto di vista dei clienti frontend. Non vorrei continuare a citare o usare questa stringa di 36 caratteri ovunque.

Capisco di raggiungere l'unicità, dobbiamo usare qualcosa come UUID. Quindi sono bloccato qui.

Quali sono le idee per ottenere univocità per un Id di prenotazione (ad esempio ABC123)?

    
posta Suyash 05.11.2018 - 07:46
fonte

1 risposta

2

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. :)

    
risposta data 05.11.2018 - 08:21
fonte

Leggi altre domande sui tag