>Here at my job we have a database modeler in our group. He is insistent that all tables use 'Natural Keys' and not surrogate keys. I am not trying to start a battle or anything, but is this really even still a debate? It does not matter how much logical reason I provide him, he is propagating his plan across the company and it does not seem to matter what the impact will be. This is a global company in 140 countries with data centers all over the world.
>
>My only questions is: Has something changed and I missed it? We are talking about values that users see and will want to change being used as primary keys on the tables.
>>but is this really even still a debate?
It's really not, but it's useful to consider its source.
Those of us who hearken back to the days of magnetic tape, when extra characters might mean hours in processing time, still instinctively rebel against data columns that are not absolutely required to solve the business problem.
So, if the character column custno contains a unique customer code, why carry a GUID or the like?
The answer is that space is no longer at a premium, but programming time is and programmers can do things more efficiently and economically if you do.
Also, there are cases- some reference tables for example- where there are no natural keys and enforcing natural keys would be weird.
Anyone who does not go overboard- deserves to.
Malcolm Forbes, Sr.