[firebase-br] Tipo para CPF/CNPJ

Carlos H. Cantu listas em warmboot.com.br
Sáb Ago 17 09:55:05 -03 2019


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

Entendo que ele pretende armazenar tanto o CNPJ como o CPF em um mesmo
campo, nesse caso o VARCHAR é mais vantajoso, visto que o CPF tem
menos caracteres que um CNPJ.

Outro ponto importante a ser lembrado é que o CHAR sempre é enviado no
tamanho declarado, ou seja, preenchido com espaços a direita até
completar o tamanho, portanto, ao recuperar o valor do campo na
aplicação, seria necessário dar um TRIM para remover esses espaços,
antes de fazer alguma comparação, etc.

[]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



WB> Em sex, 16 de ago de 2019 23:32, Gabriel Bonzanini <
WB> 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
>>
WB> ______________________________________________
WB> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
WB> Para saber como gerenciar/excluir seu cadastro na lista, use:
WB> http://www.firebase.com.br/fb/artigo.php?id=1107
WB> Para consultar mensagens antigas:
WB> http://www.firebase.com.br/pesquisa_lista.html





Mais detalhes sobre a lista de discussão lista