Fwd: Re: [Pgsql-ayuda] campos numericos

Ariel Nardelli ariel@empresanardelli.com.ar
Thu, 3 Jan 2002 19:13:49 -0300


----------  Mensaje reenviado  ----------

Subject: Re: [Pgsql-ayuda] campos numericos
Date: Thu, 3 Jan 2002 19:12:17 -0300
From: Ariel Nardelli <ariel@hensa.com.ar>
To: acastro@ciberdroide.com

El Jueves 03 Enero 2002 06:09, escribió:
> On Wed, 2 Jan 2002, Gunnar Wolf wrote:
> > > Y la otra pregunta es, si quiero definir un campo numerico que solo
> > > tiene un digito, o sea puede tener datos del 0 al 9, tengo que
> > > definirlo como int2? o sea tener casi 5 digitos cuando solo quiero usar
> > > 1? o puedo definir campos de otro tipo que me permita manejar la
> > > longitud de los campos numericos? o sea, tengo campos numericos de 6
> > > dijitos y es un campo fijo en cantidad de caracteres, tengo que definir
> > > forzosamente int8 que tiene mayor cantidad de digitos?, puedo definir
> > > un campo entero con x cantidad de digitos??...
> >
> > int2 es un entero de dos bytes o 16 bits, o sea, de -32767 a 32767.
> > Ahora, para representar del 0 al 9 necesitas poco menos de 4 bits. Sí,
> > ocupa 4 veces tanto... Pero si vas a hacer comparaciones numéricas en tu
> > base, es inclusive más rápido usar int2 que decimal(1,0), pues es más
> > fácil para la máquina no tener que andar moviendo bits fraccionarios de
> > palabra.
>
> Bueno int2 parece una muy buena solución especialmente para la velocidad
> de cálculo, pero la diferencia de velocidad podría resultar poco importante
> según el caso. Quizás te interese más optimizar espacio. Puedes usar en ese
> caso un numeric(n,0) en realidad está para eso. La forma de utilizarlo en
> una query donde necesites usarlo en una operación aritmética con otro tipo
> de dato numérico sería con un cast. La diferencia entre un decimal(n,0) y
> un numeric(n,0) la desconozco pero creo haber leido que numeric es más
> corriente o más recomendable aunque no recuerdo la razón.
>
> La solución óptima depende de cada caso. Haz algunas pruebas.

un cast? que es eso? no se lo que es....

Habitualmente son codigos de productos lo que uso por este metodo, por
ejemplo con un codigo de producto buscar en una base de datos los movimientos
o tambien son codigos de clientes, para eso es lo que estoy tratando de usar
estas definiciones..

Vos para definir los campos numericos que tienen codigos de productos que
usas?

Gracias!!!, ariel

> Un saludo
>
> Antonio Castro
>
> +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--
>+ /\     /\      Ciberdroide Informática (Tienda de Linux)
>           \\W//            <<< http://www.ciberdroide.com >>>
> 	 _|0 0|_
> +-oOOO--(___o___)--OOOo----------------------------------------------------
>+
>
> |  . . . . U U . . . . Antonio Castro Snurmacher  acastro@ciberdroide.com
> |
> | | . . . . . . . . . .
>
> +()()()----------()()()----------------------------------------------------
>+
>
> | *** 1.700 sitios clasificados por temas sobre Linux en ***Donde_Linux***
> |
> | | <<< http://www.ciberdroide.com/misc/donde/dondelinux.html >>>
>
> +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--
>+

-------------------------------------------------------