[firebase-br] Tipo para CPF/CNPJ

Wanderlei Borges wanderleiborges em gmail.com
Sáb Ago 17 09:32:00 -03 2019


Como disse o Carlos, varchar ocupa 2 bytes a mais, e sendo o cpf/CNPJ de
tamanhos fixos, recomendo o tipo chat. Se usar um tipo numérico, como
bigint, a informação será distorcida na gravação, pois os zeros à esquerda
não são gravados, como no CNPJ do Banco do Brasil por exemplo, ou seja, os
dados sempre precisarão de tratamento no front end para serem exibidos. Sou
da opinião de armazenar os dados tal como são digitados, pra não
necessitarem tratamento na recuperação.

Em sex, 16 de ago de 2019 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