[firebase-br] Tipo para CPF/CNPJ

Paulo H Albanez phalbanez em gmail.com
Ter Ago 20 10:07:39 -03 2019


Bom dia,

Também usaria varchar(14).

Não gosto de utilizar dados externos como chave primária (difícil alterar
depois que o banco esta em uso), sempre que peguei um banco definido assim,
tive problemas, prefiro que as PKs sejam sequenciais.

Na base da empresa que trabalho quando modelaram o banco definiram a chave
primária da nota como "Número" e "Série", na época a emissão era em
fomulário continuo, depois veio a NFe, a numeração voltou para "00001" e
serie "1", começo a dar duplicidade, alterar as base era inviável, tivemos
que começar a gravar a serie da NFe como '01' e remover o "0" no sistema.

Será que não haverá  algum cliente cadastrado como "CONSUMIDOR", "NOTA
COMPLEMENTAR LEI 999" ou algum cliente do exterior que não terá CNPJ/CPF?

Tem muitos casos que querem manter o histórico, nesta caso as vezes quando
um cliente/fornecedor muda de cidade ou estado,  afastam o cadastro antigo
e cadastram um novo.

Atenciosamente,

Paulo Henrique Albanez (PHA)
VirtualSystem Informática Ltda
Nova Odessa / SP - Brazil


Em sex, 16 de ago de 2019 às 23:32, Gabriel Bonzanini <
gabriel.bonzanini em gmail.com> escreveu:

> Olá Marcelo.
>
> Sigo a mesma linha de raciocínio do Wanderlei, utilizando campos numéricos
> apenas quando houver algum cálculo envolvido, um sequencial ou chave
> estrangeira; enfim, se o tipo de dado realmente for um número.
>
> Neste caso, ao meu ver o CNPJ/CPF deve ser armazenado como VARCHAR para
> evitar problemas com zeros não significativos e para facilitar a busca por
> um conteúdo parcial. Eu criaria um VARCHAR(14), armazenando apenas os
> algarismos.
>
> Abraço.
>
> Em sex, 16 de ago de 2019 23:22, Marcelo - MK Softwares <
> marcelo em mksoftwares.com.br> escreveu:
>
> > Mas e agora? Vou de varchar ou bigint?
> >
> > Firebird 2.5, dialect 3, linguagem C#, conexão usando:
> > FirebirdSql.Data.FirebirdClient
> >
> > A aplicação será um cloud de armazenamento de XML de NF-e dos meus
> > clientes, onde ainda terei que armazenar o XML em campos BLOB. Esse
> > banco de dados ficará em eu servidor e será acessado via web service,
> > para garantir uma melhor a segurança.
> >
> >
> >
> > Em 16/08/2019 23:07, Carlos H. Cantu escreveu:
> > > SS> Se você usar o tipo VARCHAR ou CHAR, irá consumir mais espaço em
> > disco,
> > > SS> pois cada dígito será armazenado em um caracter separado, ou seja,
> > mesmo
> > > SS> que vocẽ não armazene um CPF com a máscara, ele ainda consumirá 11
> > > SS> caracteres em um VARCHAR ou CHAR.
> > >
> > > Na verdade char e varchar são armazenados usando uma compactação
> > > simples tipo RLE, portanto, não necessariamente ocupará o espaço
> > > declarado. Lembrando que varchar "gasta" 2 bytes a mais pra armazenar
> > > o tamanho da informação gravada.
> > >
> > > []s
> > > Carlos H. Cantu
> > > eBook Guia de Migração para o FB 3 - www.firebase.com.br/guiafb3.php
> > > www.FireBase.com.br - www.firebirdnews.org - blog.firebase.com.br
> > >
> > > SS> Bom dia/tarde/noite Marcelo.
> > >
> > > SS> Eu lhe recomendo utilizar o tipo BIGINT, e independente disso,
> sempre
> > > SS> procure criar suas bases de dados no dialeto 3.
> > >
> > > SS> Se você estiver usando a jurássica BDE (Borland Database Engine),
> > então
> > > SS> estará condenado ao dialeto 1 mesmo.
> > >
> > > SS> Se você usar o tipo VARCHAR ou CHAR, irá consumir mais espaço em
> > disco,
> > > SS> pois cada dígito será armazenado em um caracter separado, ou seja,
> > mesmo
> > > SS> que vocẽ não armazene um CPF com a máscara, ele ainda consumirá 11
> > > SS> caracteres em um VARCHAR ou CHAR.
> > >
> > > SS> Mas um BIGINT nada mais é que um inteiro de 64 bits com sinal, ou
> > seja, ele
> > > SS> consegue armazenar valores de -9.223.372.036.854.775.808 até
> > > SS> 9.223.372.036.854.775.807 em exatos 8 bytes de tamanho, ou seja, 18
> > a 19
> > > SS> dígitos caberão em 8 bytes, o que irá reduzir o consumo de espaço
> em
> > disco,
> > > SS> e como consumirá menos espaço, também será mais rápido recuperá-lo.
> > >
> > > SS> Espero ter mais ajudado que atrapalhado.
> > >
> > > SS> Em sex, 16 de ago de 2019 às 19:00, Marcelo - MK Softwares <
> > > SS> marcelo em mksoftwares.com.br> escreveu:
> > >
> > >>> Pessoal
> > >>>
> > >>> Qual o melhor formato para o campo para armazenar CPF/CNPJ: varchar,
> > >>> decimal ou double?
> > >>>
> > >>> Esse campo será uma chave primaria em uma tabela de pessoas.
> > >>>
> > >>> Obs.: Firebird 2.5
> > >>>
> > >>>
> > >>> ______________________________________________
> > >>> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> > >>> Para saber como gerenciar/excluir seu cadastro na lista, use:
> > >>> http://www.firebase.com.br/fb/artigo.php?id=1107
> > >>> Para consultar mensagens antigas:
> > >>> http://www.firebase.com.br/pesquisa_lista.html
> > >>>
> > > SS> ______________________________________________
> > > SS> FireBase-BR (www.firebase.com.br) - Hospedado em
> www.locador.com.br
> > > SS> Para saber como gerenciar/excluir seu cadastro na lista, use:
> > > SS> http://www.firebase.com.br/fb/artigo.php?id=1107
> > > SS> Para consultar mensagens antigas:
> > > SS> http://www.firebase.com.br/pesquisa_lista.html
> > >
> > >
> > > ______________________________________________
> > > FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> > > Para saber como gerenciar/excluir seu cadastro na lista, use:
> > http://www.firebase.com.br/fb/artigo.php?id=1107
> > > Para consultar mensagens antigas:
> > http://www.firebase.com.br/pesquisa_lista.html
> > ______________________________________________
> > FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> > Para saber como gerenciar/excluir seu cadastro na lista, use:
> > http://www.firebase.com.br/fb/artigo.php?id=1107
> > Para consultar mensagens antigas:
> > http://www.firebase.com.br/pesquisa_lista.html
> >
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> Para saber como gerenciar/excluir seu cadastro na lista, use:
> http://www.firebase.com.br/fb/artigo.php?id=1107
> Para consultar mensagens antigas:
> http://www.firebase.com.br/pesquisa_lista.html
>



Mais detalhes sobre a lista de discussão lista