Versionamento de registros do banco de dados  XML
Índice dos Fóruns » Persistência: Hibernate, JPA, JDBC e outros
Autor Mensagem
Eliezer Reis
Java Ninja
[Avatar]
Membro desde: 23/04/2006 11:21:50
Mensagens: 291
Localização: Brasil
Offline

Olá pessoal,

Estou projetando um banco dados e como não sou nenhum DBA fiquei com dúvida ao projetar uma situação onde será preciso guardar uma versão do registro que foi alterado para posterior verificação ou recuperação do dado. Veja o que pensei:

- Criar um tabela nova (TabelaVersao), identica a primeira com uma chave estrangeira para fazer o relacionamento com a tabela com os dados atuais (TabelaOriginal). Entao quando houver alguma modificação na tupla da TabelaOriginal transfiro a tupla inteiro para a TabelaVersao.
Pior que desse jeito, se alterar apenas um atributo (por exemplo um atributo data) será gerado uma versao de todos os outros atributos da tupla. Assim teremos um enorme quantidade de dado repetido. Essa tabela pode ter ate 15 atributos e repetir 14 por causa de 1 me parece estranho;

- Pensei em criar uma TabelaVersao onde so guardasse o valor alterado. Mas dai os tipos dos atributos são de diferentes formatos além do que se eu guardar apenas o registro alterado não imagino como poderia mostrar os dados para o usuário sem fazer muitos malabarismo pelo codigo.

O que vocês acham sobre este caso?

[]'s Eliezer Reis
SCJP
SCWCD
[Email] [MSN]
Vini Fernandes
Virtual Machine Man
[Avatar]

Membro desde: 20/01/2009 08:43:02
Mensagens: 523
Offline

Cara, trabalhei em um versionamento onde nossa solucao eh semelhante à sua! Nao tem jeito, alteracao de um campo significa nova versao, pois o cliente fatalmente irá requisitar um acompanhamento das versoes e nesse momento ele vai fazer algumas perguntas, tais como : por que um dado campo sofreu mais alteracoes do que outro? a partir de que momento esse campo sofreu alteracao? Resumindo, creio que voce esteja na direcao certa!

Ate mais

This message was edited 1 time. Last update was at 06/10/2009 21:08:32


What do you know about Java? Help me!
[MSN]
raf4ever
GUJ Master

Membro desde: 30/01/2005 01:34:51
Mensagens: 1755
Localização: Fortaleza-Ce
Offline

vai ter que usar Java?
O Rails tem plugin pronto pra isso(acts_as_versioned)

Rafael Roque
Quis custodiet ipsos custodes?
IBM Certified SOA Associate
ITIL Foundations Certified
SCEA(I)
SCWCD
SCJP
[Email] [MSN]
Eliezer Reis
Java Ninja
[Avatar]
Membro desde: 23/04/2006 11:21:50
Mensagens: 291
Localização: Brasil
Offline

Vini Fernandes wrote: Cara, trabalhei em um versionamento onde nossa solucao eh semelhante à sua! Nao tem jeito, alteracao de um campo significa nova versao, pois o cliente fatalmente irá requisitar um acompanhamento das versoes e nesse momento ele vai fazer algumas perguntas, tais como : por que um dado campo sofreu mais alteracoes do que outro? a partir de que momento esse campo sofreu alteracao? Resumindo, creio que voce esteja na direcao certa!

Ate mais


A nem, pior que to achando pessimo isso. Em uma das tabela será uma especie de editor de texto, e tem uns 5 campo text que o usuario pode ficar horas em um registro dela salvando inumeras vezes. Eu peguei um outro sistema que tempos que essa parte é muito parecida, para cada registro existe 30 versões em média.


raf4ever wrote:vai ter que usar Java?
O Rails tem plugin pronto pra isso(acts_as_versioned)


Pior que tem, ninguem da equipe conhece Rails, então fica enviável!

[]'s Eliezer Reis
SCJP
SCWCD
[Email] [MSN]
Vini Fernandes
Virtual Machine Man
[Avatar]

Membro desde: 20/01/2009 08:43:02
Mensagens: 523
Offline

Bom, ate o momento eu nao exergo outra solucao, mas se voce encontrar outra abordagem me escreva. Gostaria de saber, já que essa situacao apareceu duas vezes em minha vida....rsrs!!!

Valeuuu

What do you know about Java? Help me!
[MSN]
 
Índice dos Fóruns » Persistência: Hibernate, JPA, JDBC e outros
Ir para:   
Powered by JForum 2.1.8 © JForum Team