From: | Jaime Casanova <systemguards(at)gmail(dot)com> |
---|---|
To: | Julio Rivero <jcrmlima(at)gmail(dot)com> |
Cc: | Gunnar Wolf <gwolf(at)gwolf(dot)org>, psql <pgsql-es-ayuda(at)postgresql(dot)org> |
Subject: | Re: Duda sobre tipo de datos Enteros vs. Caracteres |
Date: | 2005-12-17 12:41:12 |
Message-ID: | c2d9e70e0512170441j44faab4cr9106818961a93ed9@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
On 12/17/05, Julio Rivero <jcrmlima(at)gmail(dot)com> wrote:
> Gracias a todos por las respuestas.
>
> Para comentarles un poco, estamos en etapa de diseño de modelo fisico y
> algunas tablas tienen como clave primaria campos de tipo caracter, porque el
> negocio así lo establece, por ejemplo: Nro. de Factura, que generalmente por
> negocio esta establecido que es el número de serie con 3 caracteres: 001
> (por ejemplo), seguido de un "-" y continua con el número de la factura en
> si, que sería: 0000000024, es decir tendría lo siguiente: 001-0000000024 que
> suman en total 14 caracteres.
>
> Mis dudas son en cuanto a crear llaves compuestas, pues algunas van a tener
> campos de tipo INT y otras de tipo VARCHAR, por ejemplo: cod_empleado y
> nro_factura son la clave compuesta de la relación empleado factura (por
> citar un ejemplo), y como ya defini que mi campo cod_empleado sea de tipo
> INT pero mi campo nro_factura sea de tipo VARCHAR(14) (los dos son claves
> primarias de sus tablas respectivas), entonces se crearía mi tabla
> empleado_factura con los dos campos como clave primaria (llave compuesta).
>
> Habría algún problema cuando realice una consulta o query?, es decir en
> cuanto a rápidez y tiempo de respuesta para una consulta a esta tabla con
> clave compuesta y con dos tipos de campos distintos.
>
> Gracias de antemano
>
estas entendiendo mal el concepto de clave compuesta...
una clave compuesta es la que se conforma de mas de dos campos de la tabla...
create table foo (
fld1 smallint not null,
fld2 integer not null,
primary key (fld1, fld2)
);
esto es una clave compuesta, lo que tu dices es solo una forma de
buscar problemas y complicar tu codigo por gusto...
luego a la hora mostrar lo formateas para que se vea como tu quieres,
incluso podrias crear una tabla de parametros para indicar cuantas
posiciones va a ocupar el prefijo y cuantas posiciones va a ocupar el
numero de la factura...
--
Atentamente,
Jaime Casanova
(DBA: DataBase Aniquilator ;)
From | Date | Subject | |
---|---|---|---|
Next Message | José Fermín francisco ferreras | 2005-12-17 13:35:31 | Cambio de precios automaticamente |
Previous Message | Softtime | 2005-12-17 11:28:18 | Actualizacion de version (8--->8.1) |