PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

Perché è meglio memorizzare un numero di telefono come una stringa rispetto a un numero intero?

I numeri di telefono sono stringhe di caratteri numerici, non numeri interi.

Si consideri ad esempio:

  • Esprimere un numero di telefono in una base diversa lo renderebbe privo di significato

  • L'aggiunta o la moltiplicazione di due numeri di telefono insieme, o qualsiasi operazione matematica su un numero di telefono, non ha senso. Il risultato non è un altro numero di telefono (se non per caso)

  • I numeri di telefono devono essere inseriti "così come sono" in un dispositivo connesso.

  • I numeri di telefono possono avere zeri iniziali.

  • Le manipolazioni dei numeri di telefono, come l'aggiunta di un prefisso, sono operazioni di stringa.

La memorizzazione della versione stringa del numero di telefono lo rende chiaro e inequivocabile.

Cronologia:sui vecchi sistemi di chiamata codificati a impulsi, il codice per ciascuna cifra di un numero di telefono veniva inviato con lo stesso numero di impulsi della cifra (o 10 impulsi per "0"). Questo potrebbe essere il motivo per cui utilizziamo ancora le cifre per rappresentare le parti di un numero di telefono. Vedi http://en.wikipedia.org/wiki/Pulse_dialing