[AccessD] OT: The Great Primary Debate

DWUTKA at marlow.com DWUTKA at marlow.com
Tue Jun 15 11:07:51 CDT 2004


<snip>
But Autonumbers in the typical sense are not used in that way.  They are
used as tags or pointers, or in other words surrogate keys.  They can be
changed at anytime without affecting anything.
<snip>

WHAT?  I've been pretty quiet on this thread. (I know, real shocker!).  Now
come on Jim.  They can be 'changed' at anytime without affecting anything?
The complete opposite is true.  AutoNumbers (or surrogate keys of any type)
NEVER have to be changed.  And the reason they work better in 'reality' vs.
'theory', is that the surrogate key becomes the unique attribute of 'x'.  So
no matter how many tables you refer to 'x' with, the surrogate key can be
placed anywhere.  Any data related to 'x' can be changed at will, without
breaking any relationships.  If 'x' is a person, they can change their name,
hair color, DNA, SSN, anything, and all of their related data is still
linked.  Use a natural key, and you can easily fall prey to either duplicate
values, or the need to change the value.

In my opinion, this is a lot like arguing physics in a complete vacuum,
versus real world physics.  One is theory, one is reality.  What's the
point.  No one lives in 'theory', and no one develops in theory.  The real
truth is that the 'theory' world drops various aspects for simplicity, while
reality presents all of the possible variations, which are very difficult to
'compute'.  Using relational 'theory', an Autonumber IS a natural key.  Why?
Simple, because with a computer based relational system, all of the data is
really ones and zeros.  Autonumbers are also ones and zeros, so they are
just as natural as any other point of data.

Drew



More information about the AccessD mailing list