Re: Keeping historical record changes w/ triggers - best practices? - Mailing list pgsql-general

From Greg Donald
Subject Re: Keeping historical record changes w/ triggers - best practices?
Date
Msg-id CAO+WgCYQiZDmbj7Cp1MMeXjBY4g6P6Ye+gmWr1Pay910PpDjVA@mail.gmail.com
Whole thread Raw
In response to Keeping historical record changes w/ triggers - best practices?  (Wells Oliver <wellsoliver@gmail.com>)
Responses Re: Keeping historical record changes w/ triggers - best practices?  (Wells Oliver <wellsoliver@gmail.com>)
List pgsql-general
On Wed, Feb 6, 2013 at 12:41 PM, Wells Oliver <wellsoliver@gmail.com> wrote:
> I have a wide-ish table with 60 columns. I want to make a copy of data
> whenever a record is updated or deleted.
>
> Right now I have a table that's almost identical but with a 'created' column
> (timestamp) and an 'action' column (which gets TG_OP for UPDATE or DELETE).
>
> My idea would be to sort on the created column to see the historical record
> by comparing the columns. My other thought is to create two columns for each
> column in the master table (old_column, new_column, etc), storing the old
> values and the new values, and see what's changed that way.
>
> The other idea, probably a terrible idea, was to use hstore to create a list
> of the old values and new values, and have this history table just be the
> timestamp, action, and two hstore columns.
>
> Surely this has been done thousands of times. What are the thoughts
> regarding best practices in PG?

I handle this using middleware outside the db.  Past revisions of a
record (from any table I want to track) are serialized into a JSON
format and stored in a single table.  Postgres speaks JSON now, so..


--
Greg Donald

pgsql-general by date:

Previous
From: Igor Neyman
Date:
Subject: Re: configuring timezone
Next
From: Wells Oliver
Date:
Subject: Re: Keeping historical record changes w/ triggers - best practices?