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