From: | Jeff Davis <pgsql(at)j-davis(dot)com> |
---|---|
To: | Reg Me Please <regmeplease(at)gmail(dot)com> |
Cc: | pgsql-general(at)postgresql(dot)org |
Subject: | Re: EAV or not to EAV? |
Date: | 2007-11-25 18:01:29 |
Message-ID: | 1196013689.24251.342.camel@jdavis |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-admin pgsql-general |
On Thu, 2007-11-22 at 09:48 +0100, Reg Me Please wrote:
> I have to take into account the update history of every single
> field into a number of tables.
> Those updates can come to the future (next values) but also to the
> past (history fix) and apply only to some fields, usually not to the
> entire record.
> Every lookup in those tables is always related to a timestamp that
> normally is the current timestamp, but can also be a past timestamp.
>
> I've come up with a "traditionally regretted" EAV design with the add of
> timestamps for the history. And the related problems, some of which have
> been solved by Joe Conways's crosstab contrib.
Here are two more ideas:
1) Vertically partition the tables so that each field you want to track
is in its own table, and then track the history of those individual
tables. Then join the tables on a key that doesn't change when you need
to see the whole table. This works well if you only have a few non-key
fields per table.
2) Store a normal history, but also store a bitmap of the fields that
change in each record. You might use partial indexes to be able to
quickly select only those records where a certain field has changed.
EAV will give you many problems down the line, and I don't think it will
solve anything for you.
Regards,
Jeff Davis
From | Date | Subject | |
---|---|---|---|
Next Message | Tom Lane | 2007-11-25 18:02:56 | Re: pg_start_backup without WAL archiving |
Previous Message | Никоноров Григорий | 2007-11-25 17:39:28 | Re: Error while compiling PostgreSQL with Java |
From | Date | Subject | |
---|---|---|---|
Next Message | Stefan Kaltenbrunner | 2007-11-25 18:08:44 | Re: Error while compiling PostgreSQL with Java |
Previous Message | Ivan Sergio Borgonovo | 2007-11-25 17:39:32 | \copy ... with null as '' csv doesn't get nulls |