Обсуждение: Keeping information changes history

Поиск
Список
Период
Сортировка

Keeping information changes history

От
Marius Andreiana
Дата:
Hi

I need to keep information changes history for people in our
application.
e.g. when their address was changed I need to remember who changed it
(staff or member), when and to what was changed.

I don't know what's the standard approach to this problem. I thought
of having another address table, say addresses_history, same structure
as usual table, but with some extra fields: type of user and user id who
made the change, and time stamp.

Every time a change is made to addresses table also insert the proper
record in addresses_history with a trigger. But I need to know
information about the user who changed it in database, not only the
application, so where to keep it?
So I should add other columns to addresses table for this (user id and
type of user)

Any suggestions for improving or confirmations that this approach will
do the job greatly appreciated!

-- 
Marius Andreiana
--
You don't have to go to jail for helping your neighbour
http://www.gnu.org/philosophy/



Re: Keeping information changes history

От
Tom Lane
Дата:
Marius Andreiana <marius@wdg.ro> writes:
> I need to keep information changes history for people in our
> application.
> e.g. when their address was changed I need to remember who changed it
> (staff or member), when and to what was changed.

> I don't know what's the standard approach to this problem. I thought
> of having another address table, say addresses_history, same structure
> as usual table, but with some extra fields: type of user and user id who
> made the change, and time stamp.

> Every time a change is made to addresses table also insert the proper
> record in addresses_history with a trigger. But I need to know
> information about the user who changed it in database, not only the
> application, so where to keep it?
> So I should add other columns to addresses table for this (user id and
> type of user)

Yup, that's the standard approach, and using triggers to add entries to
the history table is exactly how it's done.
        regards, tom lane