Necessidade de um campo de idade

O motivo é somente o explicado pelo Sérgio: idade existe em função da data de nascimento. Não se armazena função como dado.

Na pior das hipóteses você vai utilizar uma função no banco de dados pra retornar a idade no select, mas não armazenar a idade.

[quote=Ataxexe]O motivo é somente o explicado pelo Sérgio: idade existe em função da data de nascimento. Não se armazena função como dado.

Na pior das hipóteses você vai utilizar uma função no banco de dados pra retornar a idade no select, mas não armazenar a idade.[/quote]

e como eu resolveria esse problema ?

[quote]e se o sistema servir apenas para mostrar a IDADE e servir para vários sistemas no mundo. que precisam acessar essa informação toda atualizada todo dia as 12:00h Horário de Brasília,

digamos que seja tanta gente que o sistema demore cerca de 5 minutos para processar tudo. (é um monte mesmo)

e 20 segundos para retornar os dados e 20 segundos para transferir os dados.

o requisito diz que não se pode salvar em arquivos no servidor. tudo tem que ser retornado do banco.

qual seria a melhor solução ? criar o campo IDADE e atualizar as idades as 11:50h OU fazer o calculo de 5 minutos por cada requisição?

sei que é extremamente incomum um sistema assim, mas pode existir[/quote]

daria pra fazer um for dentro de uma função Todas_Datas(), que acessaria cada data e converteria em idade, e se supostamente demorasse 5 minutos pra fazer essa conversão e ai ?

será que nessas horas não é melhor usar uma má prática, para ter um desempenho melhor ?

[quote=wellington_r]Criar um campo idade no banco é uma má prática de programação, já que ao fazer isso, você precisaria criar uma rotina para ficar atualizando os dados. Seria mais trabalhoso no momento do desenvolvimento e depois de implementado ficaria gastando os recursos do sistema desnecessariamente.

Mas ontem me surgiu uma dúvida semelhante: no sistema que estou desenvolvendo, preciso mostrar a data da última compra do cliente.
Neste caso, a decisão de criar a coluna “data da última compra” na tabela do cliente é mais difícil, uma vez que ao contrário do caso anterior, eu não precisaria criar um robô para ficar atualizando a data. O que eu faria, seria dar um update na coluna a cada vez que o cliente fizesse uma compra.
Mas ainda assim, preferi não criar a coluna “data da última compra” por questão de redundância de dados.
Se tenho uma tabela de “vendas” contendo as colunas “data” e “código do cliente”, já tenho uma forma de obter a informação desejada.[/quote]

Veja que o objetivo final é o mesmo : poupar processamento e recursos.

No cado da ideia vc poupar isso não criando um campo. No seu caso vc poupa criando um campo.
Em NoSQL é muito comum esta tecnica. Em Blogs, o post tem um campo com o numero de comentários , embora haja uma tabela de comentários. Dar o count é mais demorado que simplesmente fazer post.comentarioCount.

No seu caso o problema é a consistência. Mas isso é fácil de manter como vc explicou. ( no caso dos comentários, que são feitos simultaneamente, é mais complicado)

No fim, a decisão é diferente, mas porque o objetivo é o mesmo.

Muito obrigado galera, analisando as justificativa de quem quis ajudar na nossa decisão aqui, decidimos não usar um campo idade no nosso banco. Aos outros que só vieram até aqui pra criticar e dar uma de bam-bam só recomendo ir atrás do que fazer, pare de passar o dia escrevendo merda nas postagens dos outros!!!