I just ran across a post today by some fella named Nick Hodges who has read the most controversial article I have ever written. In his blog, as well as in many comments on the article, there seems to be some confusion as to the distinction between normalization in general and normalization using artificial integer keys. A commenter named Jack on Nick's blog seems to understand this issue best.
In any case, I don't think I need to rehash what I've already said; just read the "Doggie Bag" section of the article to see what I thought readers should take away from the article. It's very clear from that that I am not opposed to normalization, and in fact I even suggest in the article that there are certainly times where integer keys make a lot of sense.
As for my saying that lookup tables are "part and parcel with the second normal form, if you care about living up to such pedantry," which seems to have really fired up some folks, all I was saying is that I think a lot of insecure programmers try to use "big words" for vainglorious aggrandizement (how's that for big words! <g>) or to bully the lesser-knowledgeable types into agreeing with them. It is, for example, like my going up to the average church goer and asking them what they think about the soteriological significance of the Christ event. Most of them would just stare at me blankly, and I could feel very intelligent indeed.
I'm not saying that specialized jargon does not have it's place; quite the contrary, it is a very efficient way to express otherwise verbose ideas to those who are known to understand the meaning of the jargon. However, if you are dealing with an audience that probably isn't familiar with the jargon, it is pedantry. And that, friends, is why I said that in the article.
There are many (maybe most) developers that don't understand the meaning of "second normal form," but they do know that good database design involves using lookup tables to avoid the repetition of data. They don't need to know what "second normal form" means as long as the get the idea.
So, no, I was not trying to undo the concept of normalization. In fact, that was only a fleeting mention in the article. What I was saying, I still stand by. There are times when it makes more sense not to use artificial integer keys. If you disagree with that, I'm okay with it. Just please don't go creating a bunch of straw men and starting rumors...
Disclaimer The opinions expressed herein are solely my own personal opinions, founded or unfounded, rational or not, and you can quote me on that.
Thanks to the good folks at dasBlog!
Copyright © 2012 J. Ambrose Little