Hej
Chciałem się zapytać jaki jest najlepszy sposób na przechowywanie zmian w bazie.
Coś na zasadzie historii zmian.
Chodzi o to że chciałem mieć zapisane wszystkie zmiany zachodzące w systemie żeby później mieć do nich dostęp....(np znać liczbę ile razy użytkownik zmienił hasło)
Mam dwa pomysły:
- dla każdej tabeli tworzyć równoważne tabele z końcówką np Hist czyli będziemy mieli dwie tabele user i userHist. W przypadku zmiany na encji stara encja będzie eksportowana do hist a zamiast niej pojawi się nowa ze świerzymi wartościami.
- nie tworzyć nowych tabel tylko dodać do wszystkich tabel wartość delete i po prodtu starą ustawiam na true - nową na false.
Może ktoś ma jeszcze inne ciekawsze pomysły..Chętnie posłucham.
Mam jeszcze małe pytanie odnośnie Hibernate i tego co napisałem powyżej.
Mianowicie gdy pobieram objekt z bazy za pomocą Hibernate to jest on zbindowany i każda ingerencja w niego spowoduje automatyczny update tego objektu.
czyli:
- pobieram objekt z bazy
- w aplikacji zmieniam pole tego objektu - objekt jest automatycznie zmieniony i zapisany
I tu mi sie pojawia problem bo jak będę próbował zapisac nowy objekt i stworzyć takie wpisy historyczne to przy zapisie nie mam już dostępu do tego starego objektu.
Jak wtedy się zaczowac...
Czy mam przy pobieraniu z bazy tworzyć kopię tego objektu czy może jest jakiś inny sposób..
Pozdrawiam
EDIT:
Logi aplikacji odpadaja