Pessoal no meu banco que tipo de dado eu posso declar variaveis como cpf,rg e numero de telefones,se poderem me responder eu serei muito grato ? Vejam a tabela abaixo:
CPF -> possui zeros na frente, alguns preferem guardá-lo formatado. Eu prefiro armazenar como VARCHAR2, pois se for como numeric você além de não poder guardá-lo formatado, os zeros da frente vão ser suprimidos!
Telefone -> se você for guardá-lo com pontos, traços etc é bom que seja VARCHAR2
RG -> alguns estados (se eu não me engano MG é um deles) o RG possui letras, portanto é bom armazená-lo como VARCHAR2
Mas modelagem vai de cada um, o que você acha que é melhor para o teu requisito!
É óbvio que alguns vão vir ou concordando, ou com opniões diferente!
Se for guardar como texto no banco melhor guardar como char[11] sem guardar máscara somente os número, pois, o char obriga que a sua string tenha 11 caracteres, não mais e nem menos.
Agora se for guardar como inteiro, lembre-se que cpfs iniciando com zero você terá que tratar na aplicação e preencher na frente a quantidade de zeros que está faltando para completar 11 dígitos.
[quote=saninaimayer]Se for guardar como texto no banco melhor guardar como char[11] sem guardar máscara somente os número, pois, o char obriga que a sua string tenha 11 caracteres, não mais e nem menos.
Agora se for guardar como inteiro, lembre-se que cpfs iniciando com zero você terá que tratar na aplicação e preencher na frente a quantidade de zeros que está faltando para completar 11 dígitos.[/quote]
Ou então definir a coluna como integer(11) zerofill, que vai preencher com os zeros a esquerda
guardar formantado é furada, não há motivo pra guardar a formatação de CPF que é igual para tudo…
No java não use um tipo String para representar, use um tipo Cpf, que encapsula uma char[] contendo o CPF… afinal de contas, um Cpf não é uma string, é um objeto, que não existe na API padrão, e portanto deve ser modelado…