I'm starting a new project and want to begin with a database naming convention that won't become a hindrance in the future.
I want a consistent convention for tables and columns. At a previous employer I have seen all objects in upper case with underscores separating words.
e.g.
CREATE TABLE USER_TYPES (USER_TYPE_ID INT);
Is this the best way to go?
I've also seen the use of pascal notation in a few places, e.g.
CREATE TABLE UserTypes (UserTypeId INT);
This certainly looks nicer but are there any potential pitfalls?
I'm using PostgreSQL but I think this applies to any database system. I'd like to get a consensus from the members of this site as I haven't seen a defined standard.