Clave Primaria

From: "=?ISO-8859-1?Q?Juan_Garc=E9s_Bustam?=ante" <jgarces(at)futuroprofesional(dot)cl>
To: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Clave Primaria
Date: 2005-12-22 14:58:20
Message-ID: 20051222144707.M54986@futuroprofesional.cl
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Hola

Me encuentro con un problema al definir la clave primaria de una tabla.

Es una tabla que contiene 9 campos y 3 de éstos conforman la clave primaria.

Ej:

CREATE TABLE documento_venta (
a integer NOT NULL, ==> Primaria
b integer NOT NULL, ==> Primaria
c bigint NOT NULL, ==> Primaria
d integer,
e bigint,
f date NOT NULL,
g numeric NOT NULL,
h numeric NOT NULL,
i numeric NOT NULL,
);

De esta tabla dependen otras 10 tablas, con lo que la clave (a,b,c) se pasaría
a las demás tablas. Por otro lado, son tablas que contendrán millones de datos
y se consultarán frecuentemente.

Mis consultas son las siguientes:

¿Es conveniente dejar la clave como está o definir un solo campo SERIAL que
sirva como clave primaria?

¿Es significativamente más costoso un JOIN con 3 campos que con uno?

¿Influyen en algo los tipos de datos que poseen los campos claves?

He trabajado muy poco con Postgres y no sé qué opción pueda ser más óptima.

Desde ya gracias a quienes puedan ayudarme.

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Conxita Marín 2005-12-22 15:07:42 Re: Referencia de function
Previous Message Julio Rivero 2005-12-22 14:55:56 Re: Inquietud sobre PG_DUMP