Zapisování historie provedených změn

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
Miri
Člen | 117
+
0
-

Ahoj,

měl bych taký menší dotázeček.

Mám poměrně velkou databázi o cca 100 tabulkách, která je připojená na vlastní CMS a řeším jak elegantně zapisovat změny, které provedl uživatel v rámci celé databáze. Takže zapsat pokud změnil stav objednávky, nebo změnil položku v menu atd..

Za každý nápad/radu díky
Míra

newPOPE
Člen | 648
+
+4
-

Ahoj,

jedno z tych lepsich riesenie je pouzit eventy. Uvediem priklad:

  1. Na mieste kde sa nieco deje (vytvara, upravuje, …) vystrelis do systemu event napr ProductPriceUpdated($oldPrice, $newPrice)
  2. Napises si listener ktory bude na eventy ktore potrebujes pocuvat a zapisovat to do logu, log tabulky, …
akadlec
Člen | 1326
+
0
-

a pokud to má jít do historie, tak pak se jen uloží jaká entita se změnila a co se v ní změnilo. Tohle dělá třeba GEDMO Loggable

Rob Bob
Člen | 60
+
0
-

Pokud ti jde jen o logování změn v databázi a stačí ti jen dostupné hodnoty, které do té databáze posíláš (tj nic z hlediska informací o uživateli, session apod.), pak bych volil databázové triggery. Je to na jendom místě a v aplikaci nemusís nic upravovat.