Saltar al contenido

Tipo de datos para el número de teléfono: VARCHAR, INT o BIGINT?

Agradecemos tu apoyo para difundir nuestros artículos en referencia a las ciencias informáticas.

Solución:

¿Cómo manejaría un número de teléfono con una extensión, como “+1-000-000-0000 ext 1234”?

Tenga en cuenta que el “+” indica que se deben aplicar las reglas de marcación internacional; por lo que desde Norteamérica, el sistema reconoce automáticamente “011” frente a llamadas internacionales, etc.

Además, ¿qué pasa con los números de teléfono como “1-800-DBA-HELP”?

Normalmente almacenaría números de teléfono como texto. Habiendo dicho eso, realmente depende de cuán crítica sea la columna de su número de teléfono. Si está ejecutando marcadores automáticos desde esa columna, entonces realmente querrá asegurarse de que solo se incluyan números y que los datos representen números de teléfono bien formados.

Podría tener columnas separadas para extensiones y números de teléfono que tengan texto, como el ejemplo “1-800-DBA-HELP” que proporcioné.

Anteriormente estaba escrito:

“Con MariaDB podrías usar un computed para extraer solo los dígitos para un marcador automático. También funciona para MySQL 5.7″.

En respuesta a la pregunta del OP sobre esto (“¿puedes explicar un poco lo que me estás diciendo?”), Aquí hay una explicación.

Muchos sistemas de bases de datos ahora han introducido esta función. Estos son campos que se conocen diversamente como “computed“, “virtual” o “generated” que se derivan de valores en otros campos. El poder de esta característica variará dependiendo de su RDBMS. Sé que Oracle, Firebird, MariaDB y ahora MySQL 5.7 los tienen. Otros probablemente también los tengan.

Un ejemplo fácil sería tener una columna de apellidos y tener una columna calculada que “almacene” (recuerde, pueden ser virtuales, es decir, calcularse sobre la marcha, o pueden almacenarse físicamente en el disco) el apellido en mayúsculas, lo que hace que buscando más fácil. De esa manera solo tienes que buscar en CAPs (usando, digamos, LIKE), sabiendo que los datos que se buscan en el [computed | virtual | generated] el campo está en mayúsculas.

El concepto de MySQL 5.7 se explica aquí y aquí. Ha estado en MariaDB por un poco más de tiempo y el concepto también se explica aquí. Aquí se sugieren algunos usos posibles, pero en realidad solo está limitado por su imaginación. Pueden verse como un sustituto conveniente (y menos propenso a errores) de los disparadores.

Para su caso de uso particular, puede obtener un número que se pueda marcar a partir de un campo de texto “+” –> “00” (o cualquiera que sea su código de marcación internacional). Solo un pensamiento.

Recuerda que te brindamos la opción de glosar tu experiencia si diste con el resultado.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *