Re: porque el text

From: "Silvio Quadri" <silvioq(at)gmail(dot)com>
To: Sebastián Villalba <sebastian(at)fcm(dot)unc(dot)edu(dot)ar>
Cc: "Alvaro Herrera" <alvherre(at)commandprompt(dot)com>, "MIGUEL CANCHAS" <mcanchas(at)tsr(dot)com(dot)pe>, "pgsql-es-ayuda(at)postgresql(dot)org" <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: porque el text
Date: 2008-04-10 21:19:30
Message-ID: 61dc71dc0804101419tbcf85f4qf24d2ad640682dd1@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

El 9/04/08, Sebastián Villalba <sebastian(at)fcm(dot)unc(dot)edu(dot)ar> escribió:
> Hola...
>
> On Wed, 9 Apr 2008 12:01:41 -0400, Alvaro Herrera wrote
>
> > MIGUEL CANCHAS escribió:
> >
> > > Los datos que se guardan son de este tipo :
> > >
> > > T000122225
> > > H005225440
> > > T232155551
> >
> > Ah! Ok. Bueno, la verdad es que tener codigos de ese estilo hacen que
> > los indices sean mas gordos y por lo tanto las FKs mas lentas. Pero
> > el tener un cast a text no tiene mayor influencia. For the record,
> > no estoy necesariamente de acuerdo con la idea de agregar _otra_ columna
> > para tener una clave numérica, porque eso hará que la tabla sea aún más
> > grande, y tendrás que tener aún más índices, y las consultas serán
> > aún mas complejas ...
>
>
> Asumiendo el riesgo de quedar públicamente como un zonzo que implica disentir
> con una eminencia como es Alvaro, me permito escribir este email diciendo que
> no que creo que sea una buena opción tener una clave primaria de tipo text,
> quizas si una candidata. Creo (al igual que Marcos Saldívar) que agregar un
> campo serial como clave primaria sería mas conveniente siempre... me parece
> que puede ser despreciable el aumento de tamaño de la tabla con respecto al
> beneficio que se puede lograr recorrer un índice del tipo serial a uno de
> texto. Seguramente que un nuevo índice vá a implicar un retardo en las
> operaciones de inserción, actualización, etcétera, pero el mayor costo lo vá a
> representar el ya existente y no el serial.
>
> De todas maneras todo ésto puede ser muy relativo y depender de muchos
> factores, como la cantidad de registros, la concurrencia, la configuración de
> Postgres y el hardware donde todo ésto corre. Pero IMHO creo que lo mas
> conveniente (en general) es un índice serial. Saludos...
>
> -
> -------------------------------------------
> Sebastián Villalba
> A. Gestión Informática
> Facultad de Cs. Médicas
> U.N.C. - Argentina
> -------------------------------------------

Desde mi punto de vista, creo que usar una clave primaria varchar
tiene sentido, sólo en el caso que te provea una "dispersión
razonable" de los registros en la tabla ... O sea, si tu clave es
varchar y los primeros caracteres de la inmensa mayoría de los
registros son siempre iguales, más vale crear un id y joinear ambas
por ese campo.
En cambio, si los primeros caracteres son bastante dispersos (tal es
el caso de los ejemplos que dio Miguel), no habría una ventaja
significativa entre usar uno u otro.

Otra alternativa es aplicar la primera forma normal y separar el
campo, dividiendo el primer caracter de la parte numérica.
Luego se puede crear la clave primaria por ambos campos, pero
anteponiendo el numérico al caracter (el caracter no aporta mucho en
cuanto a la "dispersión" de la que hablaba).

Saludos a todos!
Silvio

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Miguel Rodríguez Penabad 2008-04-10 22:32:35 Re: porque el text
Previous Message Reynier Perez Mira 2008-04-10 20:15:10 RE: Ya instale PHPpgADMIN