Le mar. 24 janv. 2017 à 23:12, Marcio A. Sepp <[email protected]> a écrit :
Peço desculpas, mas não consegui organizar o e-mail direito.

Acontece.  Só procure pensar em quem lerá.


O caso eh que tem um cadastro de itens onde o código do item pode vir com 5 ou com 7 dígitos. Quando o item eh de um determinado importador ele tem 5 dígitos e qdo eh do mercado interno ele tem 7.
Exemplo d código d produto com 7 dígitos: 0012345.
Exemplo d código d produto com 5 dígitos: 01234

O que eh melhor (ou mais correto a fazer neste caso):
1) crio um campo para identificar a origem (importador "xxx" ou mercado interno) e junto esse campo na chave. A chave seria composta pelo campo origem e o campo código do item (neste caso integer);

Essa é uma solução interessante. Se o zero à esquerda não for significativo, e se não for o caso de separar esse cadastro em duas entidades, pode ser ideal.


2) crio o campo código como sendo varchar(7);

Se os zeros à esquerda forem significativos, por exemplo se essa lógica que delineaste acima for não apenas incidental mas uma regra de negócio, pode ser a solução ideal, já que nesse caso o atributo de origem se depreenderia do tamanho da seqüência de caracteres.

Mas, pensando melhor, do jeito que explicaste, parece ser uma regra de negócio. Se não houver diferenças noutros atributos (atributos preenchidos ou NULL de acordo com a origem, ou de significados dependentes da origem), eu creio que manteria como seqüência de caracteres. Mas, se houver diferenças noutros atributos, talvez fosse o caso de normalizar. De qualquer maneira, sendo uma regra de negócio, um atributo origem explícito seria redundante com o tamanho do código, não? Independente dele ser armazenado como número ou seqüência de caracteres.

É bem difícil aconselhar modelagem por correio eletrônico, costuma faltar informação.


--
skype:leandro.gfc.dutra?chat Yahoo!: ymsgr:sendIM?lgcdutra
+55 (61) 3546 7191 gTalk: xmpp:[email protected]
+55 (61) 99302 2691 ICQ/AIM: aim:GoIM?screenname=61287803
BRAZIL GMT−3 MSN: msnim:[email protected]

_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a