Om du antar att du använder en tillräckligt ny version av mySQL skulle jag använda triggers , personligen.
Förutsatt att de fungerar mer eller mindre som de jag är bekant med i andra produkter (t.ex. Oracle) blir ditt problem enklare, i den meningen att du sätter en "uppdatering"-triggers på raden och använder den för att uppdatera revisionstabellen för varje fält du är intresserad av.
Möjlig varning:om din applikation loggar in på DB som bara en användare (en vanlig metod om du till exempel använder anslutningspooling) kan det vara svårt att logga den faktiska användaridentiteten.