From: Mark Stosberg <mark@summersault.com>
To: pgsql-sql@postgresql.org
Subject: Peer-review requested of soft-delete scheme
Date: Tue, 16 Apr 2013 12:24:00 -0400
Message-ID: <kkjtv3$a75$1@ger.gmane.org> (raw)
List-Unsubscribe: <mailto:majordomo@postgresql.org?body=unsub%20pgsql-sql>
Hello,
I'm working on designing a soft-delete scheme for our key entity-- there
are 17 other tables that reference our key table via RI. Let's call the
table "foo".
I understand there are a couple common design patterns for soft-deletes:
1. Use a trigger to move the rows to a "tombstone table".
2. Add an "deleted flag" to the table.
The "tombstone table" approach is out for us because all the RI.
The "deleted flag" approach would be a natural fit for us. There's
already a "state" column in the table, and there will only be a small
number rows in the "soft-deleted" state at a time, as we'll hard-delete
them after a few months. The table has only about about 10,000 rows in
it anyway.
My challenge is that I want to make very hard or impossible to access
the soft-deleted rows through SELECT statements. There are lots of
selects statements in the system.
My current idea is to rename the "foo" table to something that would
stand-out like "foo_with_deleted_rows". Then we would create a view
named "foo" that would select all the rows except the soft-deleted views.
I think that would make it unlikely for a developer or reviewer to mess
up SELECTs involving the statement. Inserts/Updates/Delete statements
against the table are view, and coud reference the underlying table
directly.
Is this sensible? Is there another approach to soft-deletes I should be
considering?
Thanks!
Mark
--
Sent via pgsql-sql mailing list (pgsql-sql@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-sql
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Reply to all the recipients using the --to and --cc options:
reply via email
To: pgsql-sql@postgresql.org
Cc: mark@summersault.com
Subject: Re: Peer-review requested of soft-delete scheme
In-Reply-To: <kkjtv3$a75$1@ger.gmane.org>
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
This inbox is served by DDX for PostgreSQL; see mirroring instructions
for how to clone and mirror all data and code used for this inbox