Ajuda com definição

Started by Márcio Antônio Seppabout 9 years ago3 messagesgeneral
Jump to latest
#1Márcio Antônio Sepp
marcio@zyontecnologia.com.br

Boa tarde,

Tenho um caso onde o campo chave da tabela irá receber dois tipos de
informação: integer de tamanho 5 e integer de tamanho 7.
O problema disso é que se eu criar o campo como sendo integer, lá pelas
tantas corro o risco de dar violação de PK.

As soluções possíveis seriam criar o campo como varchar(7) ou colocar um
segundo campo na chave para identificar a informação.

A considerar:
99,9% dos registros desta tabela são de tamanho 7.

Dutra e demais da lista, qual a forma mais correta de modelar isso?

--
Att.
Márcio A. Sepp

--
Sent via pgsql-general mailing list (pgsql-general@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general

#2Leonardo M. Ramé
l.rame@griensu.com
In reply to: Márcio Antônio Sepp (#1)
Re: Ajuda com definição

El 24/01/17 a las 16:35, M�rcio A. Sepp escribi�:

Boa tarde,

Tenho um caso onde o campo chave da tabela ir� receber dois tipos de
informa��o: integer de tamanho 5 e integer de tamanho 7.
O problema disso � que se eu criar o campo como sendo integer, l� pelas
tantas corro o risco de dar viola��o de PK.

As solu��es poss�veis seriam criar o campo como varchar(7) ou colocar um
segundo campo na chave para identificar a informa��o.

A considerar:
99,9% dos registros desta tabela s�o de tamanho 7.

Dutra e demais da lista, qual a forma mais correta de modelar isso?

--
Att.
M�rcio A. Sepp

Maybe you can create two Numeric fields, for example:

create table numbers(
id serial not null,
number_7 numeric(7, 0),
number_5 numeric(5, 0),
primary key(id)
);

Then

insert into numbers(number_7, number_5) values(12345678, 12345); <-- ERROR
insert into numbers(number_7, number_5) values(1234567, 123456); <-- ERROR
insert into numbers(number_7, number_5) values(1234567, 12345); <-- OK

Regards,
--
Leonardo M. Ram�
Medical IT - Griensu S.A.
Av. Col�n 636 - Piso 8 Of. A
X5000EPT -- C�rdoba
Tel.: +54(351)4246924 +54(351)4247788 +54(351)4247979 int. 19
Cel.: +54 9 (011) 40871877

--
Sent via pgsql-general mailing list (pgsql-general@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general

#3rob stone
floriparob@gmail.com
In reply to: Márcio Antônio Sepp (#1)
Re: Ajuda com definição

On Tue, 2017-01-24 at 17:35 -0200, Márcio A. Sepp wrote:

Boa tarde,

Tenho um caso onde o campo chave da tabela irá receber dois tipos de
informação: integer de tamanho 5 e integer de tamanho 7.
O problema disso é que se eu criar o campo como sendo integer, lá
pelas
tantas corro o risco de dar violação de PK.

As soluções possíveis seriam criar o campo como varchar(7) ou colocar
um
segundo campo na chave para identificar a informação.

A considerar:
99,9% dos registros desta tabela são de tamanho 7.

Dutra e demais da lista, qual a forma mais correta de modelar isso?

--
Att.
Márcio A. Sepp

Olá Márcio,

Este PK vai ser usado como um FK em outras tabelas?

A solução depende nisso.

Att.,
Rob

--
Sent via pgsql-general mailing list (pgsql-general@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general