27/03/2010, 15:24
|
| | | Fecha de Ingreso: marzo-2007
Mensajes: 1.811
Antigüedad: 17 años, 10 meses Puntos: 20 | |
Respuesta: Duda optimizar campos tabla Cita:
Iniciado por gnzsoloyo En todo lo que signifique representación de datos, deja de lado lo que implique almacenamiento y déjaselo a la aplicación.
Lo que dice el manual hace referencia al uso de consultas en SQL, y no a lo que luego uses en la aplicación, y el caso al que te refieres es un buen ejemplo.
Si usas ese tipo de definición de campos, con los paréntesis, y usas la consola de MySQL, obtendrás esos "0001", "0002", etc.; pero cuando uses una interfase, esos mismos datos llegarán a la aplicación como 1, 2, etc. a pesar de ponerle el ZEROFILL, porque cuando las tablas pasan a la aplicación sufren una conversión de tipos a Integer, Int32, Int, Decimal, Double, o lo que sea que se use en ese lenguaje. Esto hará que los ceros a la izquierda de la coma desaparezcan (¿Recuerdas el concepto de "cero a la izquierda"?), a menos que los datos numéricos sean convertidos en cadenas...
En cualquier caso, es absolutamente innecesario ponerle el ZEROFILL a mi juicio, porque si lo que quieres es rellenar la representación, bien puedes usar funciones como LPAD() o RPAD(), que hacen exactamente esa tarea, pero en el SELECT (y los lenguajes de programación cuentan con funciones similares).
Resumiendo: Si quieres ponerle esa condición, pónsela, pero no afectará el resultado a menos que uses cierto tipo de interfases, y serán ignorados a la hora de usarlos en las aplicaciones .Net, PHP, Java, Jscript o cualquier otra, porque esos casos usan tipos propios de dato.
El uso de ese formato, al decir de Seven of Nine: "Es irrelevante"...
¿Se comprende? Comprendido, mil gracias gnzsoloyo |