bases de datos

Guardar números de teléfono en base de datos

En este post vamos a hablar sobre cómo guardar números telefónicos, teléfonos o números de teléfono en las bases de datos, enfocándonos en el tipo de dato.

Esto va a responder a la pregunta de ¿Cuál tipo de dato usar para guardar números de teléfono?.

Lo expuesto aquí es mi opinión y sugerencia, pero al final puedes hacer lo que gustes. Aunque la respuesta parezca obvia, he visto que varios usuarios preguntan esto y por eso he decidido hacer este post.

Tipo de dato para guardar teléfonos

No importa si trabajas con MySQL, SQLServer, SQLite, PostgreSQL o cualquier otro. Al final llegarás a la pregunta del tipo de dato.

Como principiantes podemos pensar que el tipo de dato para un teléfono puede ser el entero, pero esto no sería lo correcto.

En resumen, yo recomiendo guardarlos como texto (varchar, texto, o lo que sea el equivalente a la cadena en tu gestor) ya que no es necesario guardarlos como enteros.

¿Por qué no usar enteros?

No es malo usarlos para guardar teléfonos, pero no tiene caso guardarlos así y en ocasiones podemos cometer algunos errores.

El tipo de dato entero existe para guardar números (qué sorpresa) y luego hacer algo con ellos. Por ejemplo, sacar promedios, mínimos, sumas, máximos, etcétera.

En el caso de los números telefónicos no necesitamos sumarlos o hacer alguna operación con ellos.

Distintos formatos

Los teléfonos no siempre se conforman de números. Algunos usuarios los pueden escribir con espacios o guiones. También pueden escribirlos empezando con 0 o con signos.

Posible desbordamiento

Cuando elegimos el tipo de dato entero podemos causar desbordamientos y errores de rango. Por ejemplo, en MySQL el tipo de dato INT solo soporta hasta el número 2147483647 y si ingresas algo mayor a eso, será truncado a 2147483647.

Entonces si un usuario ingresa, por ejemplo, el número 2147483648 el mismo será reiniciado a 2147483647. Y eso pasará con todos los números mayores al límite.

Nota:  también existe el tipo de dato BIGINT que soporta números mucho más grandes.

Esto es un simple ejemplo muy específico, pero solo es por mencionar algunas cosas que pueden pasar.

Estoy aquí para ayudarte 🤝💻


Estoy aquí para ayudarte en todo lo que necesites. Si requieres alguna modificación en lo presentado en este post, deseas asistencia con tu tarea, proyecto o precisas desarrollar un software a medida, no dudes en contactarme. Estoy comprometido a brindarte el apoyo necesario para que logres tus objetivos. Mi correo es parzibyte(arroba)gmail.com, estoy como@parzibyte en Telegram o en mi página de contacto

No te pierdas ninguno de mis posts 🚀🔔

Suscríbete a mi canal de Telegram para recibir una notificación cuando escriba un nuevo tutorial de programación.
parzibyte

Programador freelancer listo para trabajar contigo. Aplicaciones web, móviles y de escritorio. PHP, Java, Go, Python, JavaScript, Kotlin y más :) https://parzibyte.me/blog/software-creado-por-parzibyte/

Entradas recientes

Creador de credenciales web – Aplicación gratuita

Hoy te voy a presentar un creador de credenciales que acabo de programar y que…

1 semana hace

Desplegar PWA creada con Vue 3, Vite y SQLite3 en Apache

Ya te enseñé cómo convertir una aplicación web de Vue 3 en una PWA. Al…

2 semanas hace

Arquitectura para wasm con Go, Vue 3, Pinia y Vite

En este artículo voy a documentar la arquitectura que yo utilizo al trabajar con WebAssembly…

2 semanas hace

Vue 3 y Vite: crear PWA (Progressive Web App)

En un artículo anterior te enseñé a crear un PWA. Al final, cualquier aplicación que…

2 semanas hace

Errores de Comlink y algunas soluciones

Al usar Comlink para trabajar con los workers usando JavaScript me han aparecido algunos errores…

2 semanas hace

Esperar promesa para inicializar Store de Pinia con Vue 3

En este artículo te voy a enseñar cómo usar un "top level await" esperando a…

2 semanas hace

Esta web usa cookies.