Como manter um historico no banco de dados?

Pessoal estou com as seguintes duvidas. deixa eu explicar oque eu quero e espero que alguem entenda. Olha só… criei uma base de dados no oracle com uma tabela chamada(CADASTROS) com seus campos,Nome do Material | Serie | Codigo | Etc… | … | …
na primeira linha eu cadastrei Cadeira | 00000 | 0001 | Etc… | … | … e na segunda linha eu fiz um novo cadastro com outro material mesa, só que daí eu pesquisei cadeira e resolvi alterar os dados e editei, só que eu quero puchar um historico dos dados anteriores da cadeira. Como eu faço isso?

Você quer manter gravado na base de dados as informações anteriores, ou quer saber apenas o que foi alterado, como um log?
Pois pra ter as informações anteriores sempre que precisar, vc deve tê-las em uma tabela auxiliar, que poderia ser um historico do
objeto antes da ultima alteração.

vlw!

Sim isso mesmo, quero saber somento os dados anteriores, e como faço essa tabela auxiliar?

Haa blz vou dar uma estudada sobre isso hoje e amanha posto novamente e quanto isso respondem por favor. desde ja obridado.

Se for específico crie uma table de valores para a cadeira e toda vez que salve, vai lá e coloque o anterior.
Se for genérico, já vi gente criando uma estrutura de tabela de tabelas e tabela de colunas. Então o sistema
vai lá, processa as mudanças e grava nessas tables. Mas cuidado que essas tables crescem bastante!

Um solução mais bleeding edge seria aproveitar o poder de um CouchDB e gravar os valores antigos nele… quem sabe…

Trabalho com o DB2, e ele aceita colunas com o tipo XML,

Então pensei na seguinte solução:

Criar uma table de log, com a hora em que foi alterado, o tipo de alteração, a classe da entidade alterada, e um campo xml object com o objeto serializado quando foi modificado.

Existe um novo framework da JBoss que pode servir para o que você precisa.
O nome dele é Envers e ele basicamente gera um histórico de todas modificações que ocorrem para uma determinada entidade, mas ele faz mais que isso, é possivel restaurar o valor de um objeto que já foi alterado a muito tempo atraz.

O site é http://www.jboss.org/envers/ e vale a pena dar uma olhada.

Opa. blz dei uma olha e fui em downloads mais qual que eu baixo? pode me da um suport de como fazer pessoal?

O Envers trabalha em conjunto com o Hibernate. Então vai depender da versão que você utiliza do Hibernate (Espero que vc esteja usando hibernate).

Na description dos downloads mostra qual é a compatibilidade das versões.

http://www.jboss.org/envers/downloads/

Ex:
O Envers 1.2.1.GA release funciona com a versão 3.3 do Hibernate.

Depende do seu projeto.

onde vejo a versao do meu hibernate?

Você pode ver isso dentro do jar do Hibernate no arquivo META-INF\MANIFEST.MF

Mas se você esta tendo este tipo de dúvidas acredito que deve se aprofundar mais nos estudos básicos… Sem ofensas :).