Largos máximos para recibir e insertar datos en MySQL



Muchas veces planificamos y creamos bases de datos en las cuales tendremos que almacenar varios datos, pero en la práctica no sabemos la cantidad real de caracteres que tendrá cada uno. En ese caso generalmente ponemos un valor cualquiera con el que nos aseguremos que va a caber la información.

Por ejemplo, si hacemos una aplicacación que se conecte con twitter, vamos a recibir ciertos datos que vienen en una enorme cadena de texto, pero la pregunta es: ¿cuántos caracteres recibiremos?… si no sabemos le pondremos algo así como 255, y probablemente estemos ocupando espacio adicional en el base de datos.

Bueno… como a mi me pasó eso, voy a compartir la información que investigué y que deduje para que se les haga más fácil la tarea.

ID: INT de 10 caracteres (hablando de ID’s numéricos con auto-increment y “unsigned”)
Email: VARCHAR de 256 caracteres (64 antes de la @, y un máximo de 256)
Passwords: VARCHAR de 32 caracteres si se almacenan en formato MD5 (no recomendado) y 60 caracteres si utilizan la función crypt() (muy recomendado)
Nombres: VARCHAR de 30 (generalmente con eso alcanza)… si es nombre+apellido podría ser 50 o 60 caracteres
ID de Facebook: VARCHAR de 64 caracteres (se supone que debería ser un INT UNSIGNED en MySQL, pero creo que es mejor usar varchar en caso de que más adelante decidan agregar letras)
Twitter Oauth Token: VARCHAR de 50 caracteres (aunque muchos recomiendan no limitarlo, aparentemente con 50 caracteres debería alcanzar)
Twitter Oauth Token Secret: VARCHAR de 50 caracteres (igual que el anterior)
Twitter Username: VARCHAR de 15 caracteres
RUT (chileno): VARCHAR de 12 caracteres (si se almacena con puntos y guión) o 9 caracteres (si se almacena sin puntos ni guión, que es lo más óptimo)
URL: Se supone que no hay un largo máximo definido, sin embargo leí por ahí que IE6 acepta un máximo de 2047 caracteres si la escribo en el navegador… raro, pero en verdad no sabría que largo (maxlength) recomendar. De todas formas yo generalmente uso un VARCHAR de 255 ó 500 caracteres… DUDO que alguien tenga un sitio web con más que eso (los 2047 caracteres probablemente se apliquen a un post en un blog, pero no a la URL de un sitio personal).
Latitud/Longitud: según indicaciones de Google, deberían guardarse como FLOAT(10,6), es decir, un número que tenga 10 caracteres máximo (en total), de los cuales 6 serán decimales y los otros 4 serán parte del entero. Para el número entero, Google considera 3 números más un signo “-” (negativo).
IP: si se guarda “como viene”, tendría que ser un VARCHAR de 15 caracteres (considerando números y puntos). Si se usa en formato “long integer” (usando la función ip2long de PHP, por ejemplo), tendría que ser un INT de 10 caracteres.

Lo que les puedo recomendar es que siempre se preocupen de que los datos máximos que se acepten en los campos de un formulario (utilizando el atributo maxlength) sean la misma cantidad que se recibe y guardan en la base de datos.

Hay muchos otros tipos de datos, y por supuesto que pueden preguntar en los comentarios o aportar si tienen otros datos.

Originally posted 2015-08-21 14:27:19.

Largos máximos para recibir e insertar datos en MySQL
Etiquetado en:        

Deja un comentario

¿Quieres recibir el contenido V.I.P de Preceptos Digitales?

¿Quieres recibir el contenido V.I.P de Preceptos Digitales?

Ingresa tu correo y te enviaremos contenidos especiales para quienes escuchan el Podcast!



Te has suscrito exitosamente! Nos hablamos!