Kevin Grittner, 15.03.2013 14:36:
<soapbox-rant> I occasionally hear someone maintaining that having a meaningless sequential ID column as the primary key of each table is required by the relational model. At those moments I swear I can actually hear E.F. Codd turning in his grave. It was a requirement of old pre-relational databases from the 60's and 70's, and some equally primitive ORMs still like to have one, but a big point of relational databases is that you don't need to navigate artificial linkages between tables -- the relationship can generally be determined by the fact that they contain common data elements. If these are natural, meaningful values which are visible to the user it often allows complex queries to be much better optimized, since they aren't forced through a single navigational linkage. </soapbox-rant>
You might be interested in a discussion regarding this topic on comp.databases.theory: https://groups.google.com/forum/?fromgroups=#!topic/comp.databases.theory/mqZZw3ojnjA -- Sent via pgsql-general mailing list (pgsql-general@xxxxxxxxxxxxxx) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-general