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.
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 |