Come molte persone hanno suggerito, è una questione di convenienza; ma forse più profondamente, è una convenzione.
Come programmatore, il mio primo istinto sarebbe quello di usare un tasto numerico per un ID di livello perché è così che è sempre stato fatto. In effetti, forse non mi viene nemmeno in mente, almeno a livello cosciente, che dovrei farlo in qualsiasi altro modo. Naturalmente, se esiste un motivo tecnico per non utilizzare numeri interi, dire se esiste la possibilità che ci siano più livelli di quanti possano essere memorizzati in 32 bit (una proposta molto improbabile!) O se esiste un motivo commerciale per questo, allora sarebbero prese in considerazione alternative.
Ci sono anche considerazioni algoritmiche con i tasti numerici. L'ordinamento e la ricerca di un elenco di valori ordinati alla fine si riduce a un confronto tra due numeri, anche se si tratta di un elenco di stringhe o oggetti complessi; vengono semplicemente trasformati in numeri con una funzione di hashing . Detto questo, sui moderni computer, la ricerca di un elenco di 100 o addirittura 1000 voci è solitamente rapida con un approccio a forza bruta come lo è con un algoritmo altamente ottimizzato. Nel caso di layer in un GIS, non riesco a vedere nemmeno la più complessa delle mappe con più di 1000 o giù di lì, e anche se lo facesse, gli altri calcoli associati prenderebbero ordini di grandezza più lunghi di qualsiasi piccolo guadagno da un ottimizzato ricerca di un breve elenco.
I tasti interi "hanno senso" per un programmatore e, come dice Brad, c'è più impegno nell'uso di tasti non numerici. Forse non più codice, ma più sforzo mentale, e siamo pigre creature dell'abitudine. Inoltre, la chiave che identifica in modo univoco qualcosa come un livello in un GIS è considerata "nascosta" dall'utente, per assicurarsi che non si scherzi con esso e rompere il codice che si basa sulla sua unicità (nonostante le parole chiave DB UNIQUE). Perché se dai a un utente abbastanza corda, prima o poi qualcuno si impiccerà con esso. Applica in modo univoco un campo modificabile dall'utente, ma il sistema sottostante deve assumere che la sua chiave sia unica e non manomessa.