• I agree with most of what is presented in this article.  You can go over the top with naming conventions but this is about right IMHO. 

    The compound key constraint naming is the exception to the rule as noted but that shouldn't stop you following this convention or a slight variation of this convention. 

    Generally naming a fk constraint <table name>_<constrained col name> will work OK if your pk table uses <table name>ID as its primary key column - it's then obvious which is the pk and which the fk.  I prefer qualifying constraints with _FK/_PK/_DF suffixes rather than prefixes.  This means you can list sysobjects by name and objects belonging to the same parent are listed together.

    I opt for no prefix for tables (and just avoid reserved key words) a vw- prefix for views and use v- to distinguish validation tables from data tables, also using a z- prefix for tables that contain system data rather than user data.  E.g. Customer, vSalutation, zVersion.