• I forgot to mention the most important point of all, a point that I've been seeing in many systems books over and over again the past few years...

    Do not optimize to specific application requirements.  Do not design to make it easy for a developer to implement his screen by denormalizing a table.  Do not implement anti-patterns.  Tell developers "No" when they ask for special implementations.

    Always optimize to the system.  Use standard database design patterns.  Doing this will decrease the amount of custom code you have to write by 50% or more.  Doing this will allow developers to focus on business rules instead of deciphering some clever hack saving another 50% in work time.