Ogni tanto i programmatori devono comunicare con sistemi esterni (non sotto il nostro controllo). È frequente che in questi casi sia necessario tenere traccia di alcuni tipi di identificatori utilizzati da questi sistemi esterni. E il più delle volte questi identificatori sono interi.
In questi casi, questi identificatori esterni dovrebbero essere conservati nei nostri sistemi come stringhe opache (poiché tipicamente arrivano come testo in un JSON / XML); o forse è giusto memorizzarli come numeri interi localmente? Soprattutto se quell'ID esterno fa parte di un classificatore che devi usare spesso?
Dal lato pro, un intero richiederebbe meno spazio ed essere complessivamente più efficiente. Inoltre, se ci fosse un qualche tipo di errore, non sarebbe possibile inserire un record con un valore non numerico.
Dal lato degli attacchi, è un ID esterno e non c'è nulla da dire che non inizieranno a un certo punto per aggiungere personaggi anche lì (come quando fanno un aggiornamento e ora ci sono valori extra che sono in qualche modo diversi e aggiungono semplicemente una lettera quando danno gli ID in modo che non ci siano sovrapposizioni con i vecchi valori.
Il mio lato perfezionista mi dice di andare per archi; il mio lato pratico dice che gli interi saranno un po 'più facili da gestire localmente.