2012-06-21 17 views
6

Cuál sería el mejor tipo de datos para almacenar un MSISDN (número de teléfono).Mejor tipo de datos y longitud para usar en el almacenamiento de MSISDN

Necesitas ser capaz de almacenar cualquier número de teléfono en el mundo.

¿Alguien sabe la longitud MSISDN máxima posible, incluido el código de marcación internacional?

Por ejemplo, números de teléfono Sudáfrica son + 27xxxxxxxxx que se traduce en 11 dígitos excluyendo el +

El + no tiene que ser almacenados.

Gracias de antemano

Respuesta

10

Yo usaría BIGINT. Por favor, evite usar varchar a toda costa. Es una muy mala idea usar varchar o char.

Razones. Varchar/char ocupa más espacio, es más lento hacer búsquedas y referencias cruzadas y el índice también es más grande.

Cuando diseñe tablas intente mantenerlas con longitudes de fila establecidas, las cosas se ejecutarán mucho más rápido. Si tiene que tener algún campo de texto, a menudo es mejor usar char en lugar de varchar ya que el costo general de varchar es alto.

Estoy trabajando en telecomunicaciones desde hace 12 años diseñando/optimizando plataformas VoIP/SMS. El asesino número uno cuando entro a arreglar sistemas es varchar en todas partes.

Sólo mi valor de 0.02.

3

Un MSISDN está limitado a 15 dígitos, los prefijos no incluidos.

MSISDN en la variante GSM se construye como:

MSISDN = CC + NDC (or NPA) + SN 
CC = Country Code 
NDC = National Destination Code 
NPA = Number Planning Area 
SN = Subscriber Number 

Lo ideal no tiene que guardar el +. Simplemente representa una salida.

El código de marcación internacional más largo solo se usaría cuando se realicen llamadas con un Thuraya, que es 882 16. Puede guardar el otro en donde.

Si está planeando combinar el código de marcación internacional y el MSISDN, puede usar un nvarchar (21) o varchar (21).

Cuestiones relacionadas