Hi Alastair,
See embedded comments.
On 02/05/18 21:51, Alastair McKinley wrote:
Hi,
I have a table that stores a location identifier per person which will
be appended to many times.
However, for many queries in this system we only need to know the most
recent location per person, which is limited to about 1000 records.
Is the following trigger/index strategy a reasonable and safe approach
to fast access to the latest location records per person?
1. A boolean column (latest_record default true) to identify the
latest record per person
2. A before insert trigger that updates all other records for that
person to latest_record = false
3. A partial index on the latest_record column where latest_record is
true
Suggest simplest and fastest is to use timestamptz, a timestamp with
time zone (copes with changes of daylight saving and different
timezones. The you have no need of triggers.
Then all you need to do, is search for the person-id with the maximum
value of the timestampz!
[...]
Cheers,
Gavin