From: "José Manuel Ruiz" <josemanuelruizbaena(at)gmail(dot)com>
Reply-To: lordjose84(at)gmail(dot)com
To: lordjose84(at)gmail(dot)com, pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: [pgsql-es-ayuda] chars => int
Date: Wed, 31 Jan 2007 16:46:33 +0100
Sé que puede sonar muy raro, pero tengo en mis definición de datos casi
todas las tablas como string porque es el tipo de datos más portable a
cualquier base de datos.
Sé que así uso muy poco la optimización del motor de base de datos para
recorrer campos de otros tipos, pero me aseguro que puedo portar la base de
datos a cualquier otro sitio.
No en todos los motores existe el tipo "timestamp" o por lo menos no en
todos se llaman igual. Así que por portabilidad tengo que seguir este
esquema.
Si uso un tipo fecha, no todas las fechas se almacenan igual, así que
tendría que controlar desde mi programa a qué base de datos estoy
accediendo
y tener en cuenta como trata esa base de datos el tipo fecha.
Utilizando string sé que los 4 primeros dig son el año, los 2 sig el mes...
así es mucho más fácil controlar los datos.
Aunque sí, sé que no estoy optimizando el rendimiento de la base de datos.
Pero estoy trabajando con una apli de 80 mb de código fuente y se ha estado
trabajando así desde el principio. Será complicado cambiarlo todo.
Un saludo.
El día 31/01/07, Alvaro Herrera <alvherre(at)commandprompt(dot)com> escribió:
José Manuel Ruiz escribió:
> Gracias, lo encontré en inet antes que la respuesta. :P
>
> De todas formas un string lo trata de igual forma que un numeric a la
hora
> de ordenar de mayor a menos o de saber cual de los dos es más grande.
>
> Ej:
> 20070129 < 20070130
Uff, tienes problemas serios de tipos de dato! Guardar fechas en string
es bastante torpe; para eso existen los tipos de dato "timestamp with
time zone" y otros. (Ya era torpe guardar un numero en un string, pero
esto le gana lejos).
--
Alvaro Herrera
http://www.CommandPrompt.com/
The PostgreSQL Company - Command Prompt, Inc.
--
"Comparte lo que sabes, aprende lo que no sepas"
Todo por el conocimiento libre