Wpis z mikrobloga

Mam w bazie danych tabelkę z towarami, zawiera ona sporo kolumn. Chcę zrobić "zmiany", tj. za każdym razem, gdy pojawi się UPDATE w tej tabeli, żeby pojawiała się kopia wersji sprzed update wraz z datą, autorem zmian i odnośnikiem do tego towaru z oryginalnej tabeli.

Jaki sposób na zrobienie tego będzie najlepszy? Póki co zrobiłem wersję najbardziej prymitywną i działa - skopiowałem tabelę z dopiskiem "changes", dodałem kolumny date, userid, item_id, a w PHP przy każdym UPDATE robię insert przekopiowując każde pole z osobna. W MySQL jestem laikiem, dlatego pytam, czy można to zrobić jakoś znacznie lepiej? Tym bardziej, że mam jeszcze kilka kolumn do zastosowania razem z wersją ze zmianami, a gdy dodam lub zmodyfikuję kolumny, muszę to edytować w zwykłej i tzw. archiwalnej jednocześnie, co może być dość upierdliwe i wprowadzać w błąd.

#mysql #phpmyadmin
  • 2
  • Odpowiedz
@Radeg90: trigger after/before update - sobie wybierzesz co Ci bardziej pasuje. W kolumnach OLD.kolumna1 masz stare wartości, w NEW.kolumna1 nowe wartości.
  • Odpowiedz