Ja kiedys daaaaawno temu do tego zrobilem sobie trigger i dziala do dzis.
CREATE DEFINER=`root`@`xx.xx.xx.xx` TRIGGER nodes_logi_update BEFORE UPDATE ON nodes FOR EACH ROW BEGIN IF new.name!=old.name OR new.mac!=old.mac OR new.ipaddr!=old.ipaddr OR new.ownerid!=old.ownerid OR new.warning!=old.warning then INSERT INTO nodes_logi SELECT * FROM nodes WHERE id=old.id;END IF;END
----- Oryginalna wiadomość -----
Od: "milek" milekz@gmail.com Do: "lista użytkowników LMS" lms@lists.lms.org.pl Wysłane: czwartek, 10 listopad 2011 9:25:53 Temat: Re: [lms] historia zmian danych abonenta, itp
Witam, pomysł dobry trzeba by jeszcze tylko dodać id_edytora i czas_edycji.
Pozdrawiam Miłosz
2011/11/10 "D.Wesołowski" < wesoly@klu.pl >
Hej,
Mam okazję pracować na aplikacji, która obejmuje każdy dział sporej firmy. Ostatnio przyglądałem się jak od strony bazy danych wygląda zapis danych kontrahenta, opis posesji i innych.
Każda ważniejsza tabela w bazie danych oprócz kolumny ID, ma jeszcze kolumnę POPRAWKA. Obie te kolumny tworzą unikalny klucz danego rekordu. Podczas zmiany danych rekordu, rekord nie jest zmieniany, tylko dodawany jest nowy rekord oraz inkrementowana jest wartość w kolumnie POPRAWKA. Taki zabieg pozwala trzymać historię zmiany danych. np abonenta. Może warto byłoby pomyśleć o czymś takim w LMS. Pewnie sporo funkcji wymagałoby przepisania, ale patrząc pod kątem ochrony danych osobowych, można by w dosyć prosty sposób trzymać dane historyczne, kto dokonywał zmian i co najważniejsze kiedy.