![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 31 Pomógł: 1 Dołączył: 17.03.2006 Ostrzeżenie: (0%) ![]() ![]() |
witam,
pytanie jak w temacie - dane w bazie maja byc wersjonowane z uwzglednieniem informacji o osobie dokunujacej operacji (dodanie/modyfikacja/usuniecie) jak najprosciej to zrealizowac? |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 31 Pomógł: 1 Dołączył: 17.03.2006 Ostrzeżenie: (0%) ![]() ![]() |
ja poszdlem wlasnie w strone "druga" tzn dla kazdej tabeli dorobilem tabele z sufixem _arch w ktorej dolozylem 3 kolumny (id, type, ctime) odpowiednio primary key, type - okresa rodzaj operacji na rekordzie (dodanie/modyfikacja/usuniecie), ctime (current timestamp). we wszytskich tabelach mam informacje o uzytkowniku. wiec dane te sa propagowane
na kazda tabele nalozylem triggery na operacje insert, update, delete tak ze automaycznie po jakichkowliek operacjach zmieniajacych dane sa one "kopiowane do swoich tabel _arch problemem jest tylko operacja delete gdyz sam trigger niczego nie zalatwia a jedynie "skopiuje" nam dane do tabeli _arch. obeszlem to przez napisanie procedury i teraz wyjatkowo wszystkie kasowania odbywaja sie przez procedury ktora jako parametr przyjmuje id kasowanego rekordu oraz id uzytkownika) nastepnie w wielkim uproszczeniu procedura kasuje dane z tabli "glownej" - trigger te dane "przenosi" do tabeli _arch i procedura nastepnie w tabeli _arch ustawia juz prawidlowo uzytkownika ktory dokonal modyfikacji jak ktos chce jakies dokladniejsze sczegoly to pisac na priva |
|
|
![]() ![]() |
![]() |
Aktualny czas: 11.10.2025 - 07:10 |