Re: Limiting/disallowing changes of certain columns

Поиск
Список
Период
Сортировка
От David Johnston
Тема Re: Limiting/disallowing changes of certain columns
Дата
Msg-id 1384208912740-5777813.post@n5.nabble.com
обсуждение исходный текст
Ответ на Limiting/disallowing changes of certain columns  (Melvin Call <melvincall979@gmail.com>)
Ответы Re: Limiting/disallowing changes of certain columns  (Melvin Call <melvincall979@gmail.com>)
Список pgsql-general
Melvin Call wrote
> Hello all,
>
> I am creating a data model that contains time-dependent data. I only need
> a
> snapshot solution, where we capture the initial state of all fields in the
> record, and we then store subsequent changes as a new row in a child
> table.
> What I am looking at is creating a primary table that contains the fields
> we do not need to track, or do not want to allow changes to, and a child
> table that contains the ones we do need to track. My question regards the
> columns in the parent table that we want to disallow changes to, or once
> they have been changed to a certain value to prevent further changes. An
> example would be an isvalid Boolean. Once a record has been marked invalid
> (perhaps it was created by mistake), we do not want it to accidentally be
> marked valid but we want to preserve it and any history associated with
> it.
> Other cases would be the initial creation timestamp or the initial
> creation
> person.
>
> I'm assuming that I can create a BEFORE trigger that will prevent the
> changes (and probably even return a custom error), but is that the only
> and/or best way to handle such a case?

Most common solution probably; its hard to state what might be best and one
possible alternative is to move those "invalid" records to an insert-only
archive table so they are available for reference but do not clutter up the
main table.

Probably the main reason you'd want to avoid a trigger is if performance was
suffering intolerably.  But until that happens in reality you might as well
take the most common and likely least complicated solution.

An aside: Look into "hstore" (or maybe json) for key-store functionality
which may be a technical tool you can use in your ultimate solution.

David J.




--
View this message in context:
http://postgresql.1045698.n5.nabble.com/Limiting-disallowing-changes-of-certain-columns-tp5777805p5777813.html
Sent from the PostgreSQL - general mailing list archive at Nabble.com.


В списке pgsql-general по дате отправления:

Предыдущее
От: Kevin Grittner
Дата:
Сообщение: Re: Clang 3.3 Analyzer Results
Следующее
От: Melvin Call
Дата:
Сообщение: Re: Limiting/disallowing changes of certain columns