Hi all, I've got my database on which I'm building a Java application. Since I'd like to store information about who inserted and updated a specified record, I placed in my main tables a few additional fields to store such information: CREATE TABLE myTable( .... insertUser varchar(30), insertDate date, updateUser varchar(30), updateDate date, FOREIGN KEY insertUser REFERENCES users(username), FOREIGN KEY updateUser REFERENCES users(username) ); where 'users' is a table that stores the usernames allowed to connect thru my application. This solution works, of course, but as you can imagine is quite boring to insert into each sql statement values for this additional fields, and even if I can set-up default values, this can be error prone. After a while, in order to get a little debug level on my application, I started logging into a table the sql query that each user/client has executed. This to understand why and which query can be wrong, which client version has issued it, from which, etc. So I've got a kind of backtrace of changes in the database disregarding the above additional fields. Even if this log is more difficult to consult than the above additional fields (I need to search within the sql statement string), I was wondering to remove such additional fields. Here comes my question: how can I catch user changes to each record in the database without be bored with user/date details? Anyone can suggest me a smart solution and/or database design? Anyone has already found such kind of problem? Thanks, Luca