Re: tipo de dato para los indices

From: Edwin Perez Lozano <edwinandperez(at)gmail(dot)com>
To: Alvaro Herrera <alvherre(at)commandprompt(dot)com>
Cc: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: tipo de dato para los indices
Date: 2006-12-19 15:20:21
Message-ID: 1166541621.25926.23.camel@desarrollo3.aeroenvios.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

El mar, 19-12-2006 a las 11:33 -0300, Alvaro Herrera escribió:
> Edwin Perez Lozano escribió:
> > Hola a todos los de la lista.
> >
> > Bueno mis inquietudes son las siguientes:
> >
> > 1.Planeo crear una tabla donde la llave primaria esta compuesta por dos
> > campos varchar(7)( ejeplo; TPO_PER, PER_CON) y estara relacionada con
> > varias tablas en donde creare un indice por la llave foranea, ahora se
> > castiga mucho en rendimiento si manejo este tipo de dato varchar en vez
> > de un entero en un indice?
>
> Se castiga bastante, si. Algunos sugeririan agregar una columna SERIAL
> y hacer que esa sea la llave primaria, y dejar (TPO_PER, PER_CON) como
> una llave adicional (marcada UNIQUE y NOT NULL). Otros dirian que eso
> es un sacrilegio y atenta contra las santas reglas de la normalizacion.
>
> Yo estaria de acuerdo con ambos y pondria el SERIAL de todas formas,
> porque no estamos aqui para ser santos sino para entregar soluciones.
>
> > 2. Tengo el siguiente caso: en una entidad donde el dato primario es un
> > numero que tiene 11 digitos, el dato es un numero de factura, por el
> > momento se tiene planeado manejarlo con bigint dado que tiene mejor
> > rendimiento que un numeric pero esto tendra la desventaja que en varios
> > años el numero sobrepasara lo soportado por el bigint, entonces estoy en
> > el dilema si declarar el campo numeric(n) y castigar el rendimiento o
> > declararlo bigint y cuando llegue el momento hacer un cambio de tipo...
>
> Declaralo bigint y cuando llegues al limite haces el cambio. Tengo la
> impresion de que el universo se terminara por recalentamiento antes de
> que esto suceda.
>
> alvherre=# select 8500000000000000000::bigint;
> int8
> ---------------------
> 8500000000000000000
> (1 fila)
>
> Si tienes sucesores suficientes como para sobrevivir hasta el
> recalentamiento, dales mi mensaje de buena suerte en su lucha contra la
> entropia.
>
Listo, gracias por la sugerencia Alvaro.

In response to

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Edwin Quijada 2006-12-19 15:31:54 Re: Como abrir varios puertos para un servidor de postgresql
Previous Message Alvaro Herrera 2006-12-19 14:33:12 Re: tipo de dato para los indices