Ver Mensaje Individual
  #2 (permalink)  
Antiguo 16/04/2013, 11:58
leonardo_josue
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 18 años, 1 mes
Puntos: 447
Respuesta: MySQL tipo de campo

Hola bandolera:

En primer lugar dale un vistazo a la documentación oficial:

http://dev.mysql.com/doc/refman/5.0/...ric-types.html

Ahora si, entrando en materia, para decidir qué tipo de datos debe tener tu columna debes responder las siguientes preguntas:

1. ¿Un código postal puede ser negativo? No... por lo tanto debes poner el atributo UNSIGNED al tipo de dato.

2. ¿Cuál es el valor máximo que puede tener un código postal? a partir de este dato debes elegir un tipo de datos que soporte este rango:

Código:
Tipo		Bytes	Valor Mínimo	Valor Máximo 	 	
TINYINT		1 	0		255
SMALLINT	1	0		65535
MEDIUMINT	3	0		16777215
INT		4	0		4294967295
BIGINT		8	0		18446744073709551615
3. ¿Pueden existir Códigos iguales para detalles distintos? Si la respuesta es no, entonces si, el campo Código es candidato para ser campo llave primaria, si la respuesta es no, deberás hacer uso de llaves compuestas.

4. ¿Qué longitud debe tener el campo? en los campos numéricos la longitud NO HACE REFERENCIA A LOS VALORES QUE PUEDE ALMACENAR.

Del manual de referencia:

Cita:
El ancho de muestra no restringe el rango de valores que pueden almacenarse en la columna, no el número de dígitos que se muestran para valores con ancho que exceda el especificado para la columna.

Cuando se usa en conjunción con el atributo de extensión opcional ZEROFILL, el relleno por defecto de espacios se replaza por ceros. Por ejmplo, para una columna declarada como INT(5) ZEROFILL, un valor de 4 se muestra como 00004. Tenga en cuenta que si almacena valores mayores que el ancho de muestra en una columna entera, puede tener problemas cuando MySQL genera tablas temporales para algunos joins complicados, ya que en estos casos MySQL cree que los datos encajan en el ancho original de la columna.
Saludos
Leo.