Level Extreme platform
Subscription
Corporate profile
Products & Services
Support
Legal
Français
For advocates of surrogate foreign keys
Message
 
To
28/11/1998 10:48:07
Dragan Nedeljkovich (Online)
Now officially retired
Zrenjanin, Serbia
General information
Forum:
Visual FoxPro
Category:
Other
Miscellaneous
Thread ID:
00161970
Message ID:
00162136
Views:
26
>So, the question i(d)s: business keys, use them or not, hide them or not. Ladies and gentlemen, I'm waiting for a wise word on the subject.

Dragan,

Business keys are part of the data. Invoices have numbers, customers have IDs, etc.. The issue of surrogate keys is this, "Do you use the customer ID as the primary key for the customer table, or do you add another field to act only as the referential integrity key?"

My arguments in favor of surrogate keys are;

1) Users never want to change a surrogate key's value because they never see it or use it for anything. This simplifies referential integrity enforcement.

2) i.e. customers, they are sometimes acquired and users like to have customer ids that are easy to remember. ACME001 may be bought by ZENITH and the users would like the customer ID to become ZENITH001. With surrogate keys this totally permissible without referential integrity overhead.

3) Often the "natural PK" for a table is comprised of multiple fields. When a PK is multiple fields the last two nromal forms come into play (4th and 5th). Those two normal forms are complex to say the least. Using a surrogate key cause all PKs to be only one field and therefore 4th and 5th NF don't apply.

4) I never have to worry about validating the uniqueness of the PK for a new record.

5) The design translates well to identity fields in C/S systems.

6) As Dr. Codd once said, "itelligent keys aren't."
Previous
Next
Reply
Map
View

Click here to load this message in the networking platform