Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> historia operacji wykonanych w bazie
zdzichupl1
post
Post #1





Grupa: Zablokowani
Postów: 2
Pomógł: 0
Dołączył: 25.08.2009

Ostrzeżenie: (0%)
-----


Witam!
Jak zachować wszystkie UPDATE i DELETE w bazie? Czyli jak nie nadpisywać danych tylko mieć całą historie zmian.

Od początku.
Mam bazę o strukturze
id, pole1, pole2, data_aktualizacji, użytkownik
Dostęp do bazy ma kilku użytkowników, każdy może aktualizować i usuwać rekordy.
Chodzi mi o to ze chce mieć całą historie zmian w bazie a nie tylko aktualny rekord.
Oczywiście użytkownik ma widzieć tylko aktualny wpis lub jego brak jeśli jest usunięty, czyli dla użytkownika baza działa klasycznie, (usuwa i aktualizuje rekordy i widzi wynik), ale ja chce mieć wgląd w operacje na bazie.

Mam taki pomysł
dokładam pole id_update i ewentualnie pole status które informuje czy rekord jest usunięty i wychodzi coś takiego
id, id_update, status, pole1, pole2, data_aktualizacji, użytkownik
kluczem głównym będą 2 pola id i id_update
Aktualizując nie robie UPDATE tylko INSERT nowego rekordu o tym samym id a id_update zwiększam o 1 (najwyższe id_update to aktualny wpis)
wtedy mam łatwy wgląd w historie aktualizacji
Przy DELETE to samo (czyli id_update zwiększam o 1) tylko status zmieniam na usunięty

I tu moja prośba
Czy w ten sposób nie próbuje wyważyć otwartych drzwi. Może ten problem już dawno jest rozwiązany i sprawdzone jego działanie. Może ktoś ma inny (prostszy, szybszy, wypróbowany) sposób niż tu zaproponowałem? Może są gotowe funkcje w MySql, które to rozwiązują.
Proszę o sugestie.

Dzięki

Ten post edytował zdzichupl1 25.08.2009, 20:18:00
Go to the top of the page
+Quote Post
vokiel
post
Post #2





Grupa: Zarejestrowani
Postów: 2 592
Pomógł: 445
Dołączył: 12.03.2007

Ostrzeżenie: (0%)
-----


Moim zdaniem lepiej stworzyć oddzielną tabelę w której będziesz logował wszystkie akcje związane z bazą.
Dzięki oddzielnej tabeli możesz łatwo sobie zapisać takie dodatkowe dane jak IP, przeglądarkę, system, datę, godzinę oraz co najważniejsze, co się zmieniło (stan poprzedni -> stan obecny) lub ewentualnie co zostało usunięte, dodane.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 23.08.2025 - 06:47