Indeed a big question for every developer and designers to think about when developing any application, many times I was stumbled upon this concept. Mirko Marović has written an excellent reference with regard to this subject, its highly recommended and worth a reading: The question had been discussed many times in database forums, especially SQL Server forums. The latest article about the topic was published month ago on SQL-Server-Performance.com. I have pretty strong opinion, that surrogate keys...(<a href="http://sqlserver-qa.net/blogs/el/archive/2011/01/24/9920.aspx">read more</a>)<img src="http://sqlserver-qa.net/aggbug.aspx?PostID=9920" width="1" height="1">