Farò del mio meglio per fare un altro buon caso qui. : -)
Non c'è una risposta concreta; è tutta una questione di valutazione dei rischi. Devi guardare il tuo sistema e capire:
- Che danno, se esiste, verrà da un utente in grado di indovinare facilmente gli ID dei tuoi record
- Quali controlli hai in atto per impedire l'accesso laddove non lo desideri
- Che danno deriverebbe da errori di comunicazione o da errori di informazione (ad esempio, inserendo
156
anziché 159
quando entrambi sono validi)
- Quali altre informazioni possono essere ricavate osservando l'incremento del numero di sequenza.
Se sei IMDB, gli ID non contano davvero, e il loro è, di fatto, sequenziale. Qualcuno che guarda la voce per Young Frankenstein può cambiare l'ultima cifra nell'ID del titolo e tirare vai alla pagina Zandy's Bride . Non c'è nulla di male nel vedere quei dischi perché praticamente tutto sul sito è contenuto che vogliono vedere, e vedere un'altra pagina significa un'ulteriore opportunità di mettere materiale promozionale davanti ai tuoi occhi. Gli utenti finali possono modificare i record, ma farlo dipende dal superamento di un controllo di accesso. Inserire quello sbagliato significa vedere il film sbagliato, che diventa ovvio perché il titolo è la prima cosa nella pagina recuperata. Probabilmente anche a loro non interessa che tu possa guardare il numero di sequenza per i titoli oggi e tra una settimana e il numero di film che sono stati rilasciati durante quella settimana.
Se sei un sito di e-commerce, è importante. Lasciare che una terza parte che ha ordinato l'ordine 2620453
veda lo stato per l'ordine 2620452
rischia di perdere finanziaria per me o per il mio cliente se diventa evidente che un oggetto di valore verrà consegnato a casa mia al 1010 Disk Drive il martedì e tale informazione è usato per rubarlo mentre sono ancora al lavoro. Quel genere di cose era un problema nei primi giorni dello shopping online. I siti non sviluppati da naif che utilizzano numeri di ordine sequenziali ora richiedono qualcosa che tu sappia dell'ordine come il codice postale ship-to come un secondo fattore per il controllo degli accessi se non richiedono già un accesso completo. Annullare un numero d'ordine errato senza verificare che si tratti del cliente corretto e l'ordine potrebbe rischiare di perdere attività future. E l'ultima cosa che vuoi è che i concorrenti facciano brute-forzando i tuoi numeri di ordine per capire se stanno facendo o meno più o meno affari di te, il che è una buona ragione per una chiave esterna difficile da indovinare.
La tua menzione di UX suggerisce che probabilmente gli ID non saranno gestiti solo dalle macchine, quindi c'è anche la necessità di considerare l'usabilità. Gli UUID di tipo 4 sono ottimi secondi tasti perché sono difficili da indovinare e raramente si scontrano. Metti un umano nel loop cercando di ottenere 32 cifre esadecimali in un dispatcher attraverso un collegamento radio traballante e diventano veramente terribili molto velocemente. Gli ID sequenziali potrebbero essere altrettanto negativi per lo stesso motivo, perché un'estremità potrebbe dire che si trova nel sito three-oh-six , l'altra estremità potrebbe sentire three-eight-six e un il camion viene inviato in un posto valido ma sbagliato. Gli hash brevi, magari con una cifra di controllo, potrebbero essere un'alternativa valida a seconda del numero di record, della tolleranza degli utenti per gli ID più lunghi e dell'importanza di evitare voci errate.