2 em 1 - Modelagem e Journalling em Banco de Dados

Bom,

o Titulo quase explica a minha duvidas.

1)Modelagem: Alguns conceitos recentes no Hibernate, Ruby on Rails , Symfony, e outros Frameworks de linguagens distintas, tem usado o conceito de sempre a PK da table ser id e em fk’s ser table_id, uma convenção, alguem poderia me explicar mais profudamente este conceito, como funciona em tables de ligação. A parte basica conheço, mas realmente queria uma interpretação correta do conceito.

  1. Journalling: Vi este nome em alguns projetos, alegando que as alterações eram salvas pois usavam o conceito de Journalling, alguem consegue explicar, é realmente um metodo novo, ou somente uma nomenclatura nova para tecnicas ja usadas.

Vlw

[quote=domluc]Bom,

o Titulo quase explica a minha duvidas.

1)Modelagem: Alguns conceitos recentes no Hibernate, Ruby on Rails , Symfony, e outros Frameworks de linguagens distintas, tem usado o conceito de sempre a PK da table ser id e em fk’s ser table_id, uma convenção, alguem poderia me explicar mais profudamente este conceito, como funciona em tables de ligação. A parte basica conheço, mas realmente queria uma interpretação correta do conceito.

  1. Journalling: Vi este nome em alguns projetos, alegando que as alterações eram salvas pois usavam o conceito de Journalling, alguem consegue explicar, é realmente um metodo novo, ou somente uma nomenclatura nova para tecnicas ja usadas.

Vlw[/quote]

Pessoal, ninguem se arrisca, qualquer exemplo, situação esta servindo

domluc, é o seguinte …
o esquema do id e table_id é apenas um padrão de nomes que alguem adotou, os outros foram gostando e adotando também, nada demais …

quando ao Journalling, não é exatamente nada de novo, só existem diversas formas de implementar …

Alguns sistemas de arquivos como o ReiserFS ou EXT3 do Linux utilizam Journalling …
isto não quer dizer nada mais, nada menos do que gravar um log de tudo o que esta sendo feito …
em alguns casos desde o principio dos tempos, em outros desde o ultimo ponto estavel …

em um banco de dados, pode ser implementado, por exemplo com triggers (se bem que o log de transações dos bancos de dados ja é um tipo de journalling)
em java, se estiver utilizando JPA, pode implementar algo parecido com EntityListeners …

formas de implementar existem diversas, em diversos ambientes diferentes, apenas o conceito é o mesmo …

a vantagem é que em caso de desastre, é possivel reconstituir o sistema/os dados, a partir do log existente …

Complementando…

o Oracle e o PostgreSQL possuem o archived log para isso… não precisa ser desenvolvido na aplicação.

É apenas questão de configuraçào.

fw