I'm not going to be able to provide you suggestions or best practices for naming so I'll let the others speak. However I would never recommend using a dot in a name. The reason is that if you do that then you'll always have to wrap the name in square brackets otherwise it could cause problems. SQL uses a dot to separate server, schema, table, column names. If you have a dot in the middle of one of those then it is going to get confused. For example EDW.member
, is that the Member table of EDW schema, the Member column of the EDW table, or what? It gets even more confusing when you need the full name <server>.<schema>.EDW.Member.<column>
. To prevent confusion you'll always have to wrap it in brackets (e.g. <server>.<schema>.[EDW.Member].<column>
) which I personally don't like.
If you had to choose I would say use an underscore. But honestly I wouldn't even do that. I don't feel that EDW_Member
is any more readable then simply EDWMember
or EdwMember
. While SQL doesn't care about the casing, it does make it easier for the rest of us. If you really, really need have clarification then you could also use schemas. So EDW.Member
would be the Member
table in the EDW
schema. This is useful for databases with large, logically separated tables. Refer to WorldWideImporter database as an example.