The naming conventions used in SQL Server’s AdventureWorks database demonstrate many best practices in terms of style.
To summarize:
- Object names are easily understood
- Table names are not pluralized
(“User” table not “Users”) - Abbreviations are few, but allowed
(i.e. Qty, Amt, etc.) - PascalCase used exclusively with the
exception of certain column names
(i.e. rowguid) - No underscores
- Certain keywords are allowed (i.e.
Name) - Stored procedures are prefaced with
“usp” - Functions are prefaced with “ufn”
You can find more details here:
One caveat: database naming conventions can be very controversial and most database developers I’ve met have a personal stake in their style. I’ve heard heated arguments over whether a table should be named “OrderHeader” or “OrderHeaders.”