none
Campo com máscara RRS feed

  • Pergunta

  • Tenho alguns campos com máscara no sistema, exemplo telefone, cpf, cnpj, etc.
    Qual seria o mais indicado, gravar no banco o valor sem a máscara ou gravar com as máscara ?

    segunda-feira, 4 de dezembro de 2006 20:04

Respostas

  • Olá Leandro,

    Para este caso, creio que vale a pena você colocar na balança o tempo que seria necessário para desenvolver uma solução e o ganho com desempenho em pesquisas. Nesta situação em específico, você não irá fazer pesquisas pelo numero de telefone nem  comparação de números (é o que imagino), então, um VARCHAR poderia ser usado tranquilamente.

    Além disso, a lógica que você está querendo criar, será desenvolvida na sua aplicação, o banco apenas irá armazenar essas informações.

    Espero ter ajudado.

    Abrs.

    terça-feira, 5 de dezembro de 2006 16:49

Todas as Respostas

  • Olá Leandro,

    Em geral, eu recomendo fazer a gravação destes dados sem a máscara.

    Se o campo em questão for usado para buscas, por exemplo o CPF, é ainda melhor gravar ele como INT. Pois na hora de executar a consulta, o algoritmo de comparação de números é muito mais rápido que a comparação de Strings, que é feita bit a bit.

    Abrs.

    segunda-feira, 4 de dezembro de 2006 20:12
  • A minha duvida em gravar sem máscara seria no momento de desenvolver algum relatório, será necessário formatar  o campo conforme a máscara ?
    segunda-feira, 4 de dezembro de 2006 20:27
  • Como o amigo Alexandre VM ja tinha dito.

    O indicado é sempre gravar os campo sem mascara. Na aplicação vc mascara.

    Caso vc grave as mascaras os campos deveram ser char e pesquissa por campo char são pesada!1

    Jothaz
    segunda-feira, 4 de dezembro de 2006 20:50
  • tambem voto no sem mascara, alem do overhad que economiza, campos numerico sao melhores canditos a indice que campo tipo char...
    terça-feira, 5 de dezembro de 2006 00:31
  • Estou com duvida ainda.
    Por exemplo um campo telefone, a máscara utilizada seria  (9**99) 9999-9999
    Se for gravar sem máscara em um campo int, seria com 10 posições somente para arquivar o  DDD  +  o numero do telefone.

    Pretendo desenvolver um grid onde o usuário possa selecionar os campos que deseja visualizar na tela. Sendo assim terei que fazer uma opção de formatação, pois quando o usuário selecionar o campo "telefone" o mesmo tem que ser apresentado com a devida formatação, ou seja, a formatação tem que ser automática.

    A minha duvida esta neste ponto, como irei saber a máscara que deverá ser aplicada no campo selecionado pelo usuário ?

    terça-feira, 5 de dezembro de 2006 16:36
  • Olá Leandro,

    Para este caso, creio que vale a pena você colocar na balança o tempo que seria necessário para desenvolver uma solução e o ganho com desempenho em pesquisas. Nesta situação em específico, você não irá fazer pesquisas pelo numero de telefone nem  comparação de números (é o que imagino), então, um VARCHAR poderia ser usado tranquilamente.

    Além disso, a lógica que você está querendo criar, será desenvolvida na sua aplicação, o banco apenas irá armazenar essas informações.

    Espero ter ajudado.

    Abrs.

    terça-feira, 5 de dezembro de 2006 16:49
  • Ok, vou analisar e verificar qual seria o mais indicado para este caso.
    terça-feira, 5 de dezembro de 2006 17:05