27/03/2010, 08:38
|
| Moderador criollo | | Fecha de Ingreso: noviembre-2007 Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años, 1 mes Puntos: 2658 | |
Respuesta: Duda optimizar campos tabla 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?
__________________ ¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente... "El problema es la interfase silla-teclado." (Gillermo Luque) |