pg.ddx.io  pgsql-performance@postgresql.org mailing list archive  
help / color / mirror / Atom feed
From: Greg Smith <gsmith@gregsmith.com>
To: pgsql-performance@postgresql.org
Subject: Re: Basic Q on superfluous primary keys
Date: Mon, 16 Apr 2007 23:02:48 -0400 (EDT)
Message-ID: <Pine.GSO.4.64.0704162239300.7058@westnet.com> (raw)
In-Reply-To: <b42b73150704160855s676a8c43n7ef4282f5ef175c9@mail.gmail.com>
References: <c2350ba40704140419r2f3c85dfi60171759b71f4db7@mail.gmail.com>
	<20070414075947.e5fbeec8.wmoran@collaborativefusion.com>
	<b42b73150704160603x1d164134pfd2af7481f802ed9@mail.gmail.com>
	<46239000.7000708@modgraph-usa.com>
	<b42b73150704160855s676a8c43n7ef4282f5ef175c9@mail.gmail.com>

On Mon, 16 Apr 2007, Merlin Moncure wrote:

> extraordinary cases do happen, like a company overhauling its numbering 
> systems, but such cases can be dealt with by a number of methods 
> including letting RI do its thing.

I think the point Craig was trying to make is that what you refer to here 
as "extraordinary cases" are, in fact, rather common.  I've never seen a 
database built on natural keys that didn't at some point turn ugly when 
some internal or external business need suddenly invalidated the believed 
uniqueness of that key.

The last really bad one I saw was a manufacturing database that used a 
combination of the customer code and the customer's part number as the 
key.  Surely if the customer changes their part number, we should switch 
ours to match so the orders are easy to process, right?  When this got fun 
was when one large customer who released products on a yearly schedule 
decided to change the bill of material for many of their parts for the new 
year, but re-used the same part number; oh, and they were still ordering 
the old parts as well.  Hilarity ensued.

> it is especially unclear how adding an integer to a table will somehow 
> magically solve these problems.

If the key is a integer, it's always possible to figure out a trivial map 
that renumbers the entire database programmatically in order to merge two 
sets of data.

--
* Greg Smith gsmith@gregsmith.com http://www.gregsmith.com Baltimore, MD



view thread (17+ messages)  latest in thread

Message-ID: <Pine.GSO.4.64.0704162239300.7058@westnet.com>
Permalink:  ../Pine.GSO.4.64.0704162239300.7058@westnet.com/
Also on:    postgresql.org/message-id/Pine.GSO.4.64.0704162239300.7058@westnet.com

 · 

reply

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-performance@postgresql.org
  Cc: gsmith@gregsmith.com
  Subject: Re: Basic Q on superfluous primary keys
  In-Reply-To: <Pine.GSO.4.64.0704162239300.7058@westnet.com>

* 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