¿Está bien almacenar números como varchar?almacenando números como varchar
¿Cuál es la diferencia entre
int 123456789012
y varchar 123456789012
?
¿Está bien almacenar números como varchar?almacenando números como varchar
¿Cuál es la diferencia entre
int 123456789012
y varchar 123456789012
?
No, casi siempre es una mala idea.
No podrá hacer cálculos con columnas declaradas como varchar, por lo que se deben usar tipos numéricos. Y dado que su consulta SQL es una cadena de todos modos, MySQL hace toda la conversión por usted (eso no significa que no necesite validar los valores proporcionados por el usuario, por supuesto).
Creo que es buena idea guardar números como varchar, siempre y cuando no se quiere hacer con calculadoras eso.
Por ejemplo, un número de teléfono o códigos postales sería mejor para almacenar en varios campos porque podría formatearlos.
Puede almacenar ceros a la varchar que no puede hacer con columnas enteras (por ejemplo, es posible tener una diferencia entre 123
y 0000123
). Por ejemplo, códigos postales en algunos países. Sin embargo, si necesita hacer eso, entonces realmente está tratando con información textual que debería tener una columna varchar. Por ejemplo, los números de teléfono o códigos postales definitivamente deben ir a una columna varchar.
De lo contrario, si utiliza sus datos como números (agréguelos, comparándolos, etc.), debe ponerlos en la columna de enteros. Consumen mucho menos espacio y son más rápidos de usar.
El problema de ceros a la izquierda también puede ser una desventaja. Recientemente me encontré con una situación en un proyecto donde, debido a la forma en que el código de Java lo había manejado, una tabla tenía ceros a la izquierda y la otra no. Esto hizo que sea más difícil hacer uniones en esta columna. Los datos eran un número y, por lo tanto, probablemente deberían haber sido almacenados como tales en lugar de como varchar. – xdhmoore
Guardaría cosas como números de teléfono, y solo cosas como números de teléfono, como varchar, ya que en realidad no son números como tal. No haces matemáticas en los números de teléfono. Sin embargo, al decidir los tipos de datos para los campos siempre se debe utilizar de forma predeterminada los tipos numéricos sobre varchar, a menos que se le ocurra una buena razón para no hacerlo, porque pasar de varchar a numérico es mucho más difícil que al revés. – GordonM