• Not sure I agree about the GUID's. From a pure size perspective, GUID's will be slower because they take up a bit more space. The offsetting advantage is that you can eliminate round trips, reducing server load and bandwidth usage. I believe even substituting identity columns does fulfill your requirement for determining a logical key. "Real" keys vs identity type keys is to me..a separate discussion!

    I like nicely documented, easy to follow relations. I work with an app now that fell prey to the put it all in one table plan and while it works, it's harder to work with it than it needs to be.

    Just to stretch the discussion a bit, I believe there are many times when it's acceptable to design using relationships but elect not to enforce them, both to reduce the overhead and to give you the freedom to do things you couldnt do if the foreignkey was enforced.

    Andy

    http://www.sqlservercentral.com/columnists/awarren/