I can think of several ways of "versioning" objects (modeled as rows of a table). 1) parent-child based model, where each edit of a row results in a child row 2) date-based model, where each row is stored with a date and no updates are performed, only inserts 3) Maintain a shadow table with "old" versions of a row 4) Maintain a shadow table with only diffs from the original and metadata on when the changes took place 5) Other? Has anyone suggestions on what might work "best"? The "rows" here are going to be simple text fields with a little metadata. Thanks, Sean