Hi,
Although Solution 1 works for you as you are using SQLServer2005. But if you are planning for SQL Server 2008 then you should check
Change Tracking in SQL Server 2008[
^]. it will store high level of change history. you do not have to write anymore code.
Anyway hope you will create triggers for your tables.
Thanks
-Amit Gajjar.