well, you could of course have one table. The table would have to contain: entity name (class), entity id, field name, field value, metadata (like the revision number). This is much less clear for the reader to see what exactly changed.
So in fact, it depends on what are your requirements. If you only want to audit, without an easy way to read historical data, the "flat" way may be better. But if you want to execute queries, access historical data etc - then the table-per-entity way is probably better.