[postgis-users] Capturing point in time information for groups of geometries.

Paul Ramsey pramsey at refractions.net
Mon Jan 31 15:19:19 PST 2005

Brute force solutions to temporal problems are commonplace. There are 
not a lot of generic elegant solutions, unfortunately, the solution that 
suites you best will depend on your problem domain.

Many operational spatial database systems want to maintain "time travel" 
capability -- the ability to find the state of the data at any past 
time.  One common way of doing this is to give every field an extra pair 
of attribute datestamps, an "admission date" and a "retirement date". 
Then, finding a version of the database becomes a fairly simple exercise 
in SQL.

However, such a database can be a pain to work with for day-to-day 
operational tasks (because it is full of legacy information as well as 
current information).

A simple way of trading disk space for complexity is to keep two copies 
of your database around.  A copy that is a "current operation" version, 
and a "versioned" copy.  By putting update/insert/delete triggers on all 
your "current operation" tables, you can cause the "versioned" copy to 
be kept in sync with the changes that occur on the operational data. 
This is a nice way to maintain versioning without imposing the overhead 
of a versioning system on your end users.  Of course, it has *other* 
overheads, in terms of space and performance.

Everything is trade-offs.



Eric Merritt wrote:

> I need to capture point in time information for groups of geometries
> (maps basically). The goal is to see how things change over time. I
> havn't come up with any simple and reliable way to do this as yet. I
> have a couple of simple and strait forward ways to do it but they are
> more brute force, non-optimal approaches. Do any of you have similar
> requirements? Would you mind sharing your solutions?

More information about the postgis-users mailing list