Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Edson Sousa

Tipo de Primary key ideal para cnpj e cpf

Recommended Posts

Bom dia pessoal, estou com um probleminha aqui.

estou usando Php & Mysql.

 

Problema:

Quando cadastro um estabelecimento e coloco o cnpj ele grava no db mas porém, todos os "cnpj" iniciados com "0" perdem este primeiro "0" e fica só o restante dos números.

ex: eu cadastro cnpj: 01234567000112 ai quando vou olhar no db está assim 1234567000112, sem o "0" no início.

 

O tipo de que está no db para receber este número é "decimal" e é Primary Key.

 

Já coloquei varchar.: até cadastra legal com o "0" e tudo mais, porém, não consigo pesquisar o número do cnpj se estiver varchar.

 

Alguém poderia me ajudar ? desde já agradeço.

Compartilhar este post


Link para o post
Compartilhar em outros sites

O campo com DECIMAL(14,0) com e o atributo: UNSIGNED ZEROFILL.

 

Obs: UNSIGNED ZEROFILL preenche os espaços em branco com zero ou seja ele é util em casos como cpf ou cnpj, mais cuidado se você colocar seu campo para cnpj como DECIMAL(15,0) ele ira sempre colocar um zero a mais.

http://dev.mysql.com/doc/refman/5.5/en/numeric-type-attributes.html

Compartilhar este post


Link para o post
Compartilhar em outros sites

Já coloquei varchar.: até cadastra legal com o "0" e tudo mais, porém, não consigo pesquisar o número do cnpj se estiver varchar

Como não? Como você tentou fazer a busca?

Compartilhar este post


Link para o post
Compartilhar em outros sites

A dica do Ricardo é bem válida, colocando como DECIMAL, UNSIGNED ZEROFILL, use-a. Já o varchar, também vai servir, mas daí vai ser tratado como string se não me engano, "decimal" é mais útil no seu caso........

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não acho certo usar o CPF/CNPJ como chave primária.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Adiantando a resposta do bruno hehehehe se for igual a minha neh. Pq quando a pessoa perde o cpf ele tem que fazer outro, e não eh tão dificil achar pessoas assim. O cnpj, toda empresa tem que ter um porém como vc trata as empresas com diversas filiais? É aconselhavel usar um ID como chave primaria. E se não me engano o like é usado para pesqusiar varchar, o igual também á usado porém acho que tem que colocar aspas duplas ou simples, assim como no like. kkkkkkkkkkkkkkkkk

 

Bruno me corrija se tiver errado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

É muita muvuca na minha cabeça sobre o assunto que não consigo expressar em palavras um motivo racional.

 

E apesar de ser um ponto bem plausível o levantado pelo amigo acima, não tinha considerado essa hipótese. Talvez porque meu emprego esteja tão intimamente ligado a esse assunto fiz um bloqueio automático :closedeyes:

Compartilhar este post


Link para o post
Compartilhar em outros sites

Adiantando a resposta do bruno hehehehe se for igual a minha neh. Pq quando a pessoa perde o cpf ele tem que fazer outro, e não eh tão dificil achar pessoas assim. O cnpj, toda empresa tem que ter um porém como vc trata as empresas com diversas filiais? É aconselhavel usar um ID como chave primaria. E se não me engano o like é usado para pesqusiar varchar, o igual também á usado porém acho que tem que colocar aspas duplas ou simples, assim como no like. kkkkkkkkkkkkkkkkk

 

Bruno me corrija se tiver errado.

Cada filial tem um CNPJ diferente, o que diferencia uma filial da outra vem depos do "/".

 

Quanto a questão em tela, manda um int com autoincrement e boa, ficar rodando isto com um número como o CPF/CNPJ não faz sentido, até pode ter um campo para este número como unique, mas só.

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Adiantando a resposta do bruno hehehehe se for igual a minha neh. Pq quando a pessoa perde o cpf ele tem que fazer outro, e não eh tão dificil achar pessoas assim.

Nesse ponto, está errado. É impossível trocar de CPF. Quando você faz o seu, precisa do seu registro de nascimento e do seu nome. Com isso, mesmo que você perca seu CPF, você só tira uma segunda via do MESMO. Sei disso pois já perdi o meu.

 

Como vocês, concordo que essa busca incessante por chaves naturais é besteira. ID inteiro com auto increment e unique no cpf/cnpj e todos ficarão felizes.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu li um tópico aqui no iMasters mesmo dizendo que UNIQUE é ruim para tabelas com muitos dados.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu li um tópico aqui no iMasters mesmo dizendo que UNIQUE é ruim para tabelas com muitos dados.

 

Acredito q seja pelo uso do espaço em disco, essa coluna vai ser armazenada separada da tabela ocupando mais espaço.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.