Jump to content
  • Advertisement
Sign in to follow this  
Dynamo_Maestro

SQL Server Table naming conventions

This topic is 1664 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

When you create a new table in SQL Server the default name is dbo.Table_# with # being the new table value. I rename my tables without the dbo. and it is almost always plural.  Looking at TFS collections I noticed all the tables were named with one of the following prefixes Codesense.tbl_ / dbo. / dbo.tbl_ where they were mostly singular names regardless of the prefix.

 

There is a fair amount of noise online on whether tables should be plural / singular online but nothing really mentioned prefixes such as dbo. or dbo.tbl_.

 

My question isn't really about naming tables with plural / singular names but more about the dbo. dbo.tbl_ prefix. Is this the SQL version of Hungarian notation where I can freely avoid or is there some kind of rule where it is best to follow this practice and name tables with dbo. / dbo.tbl_ prefixes?

 

Edit: This applies to other areas of the DB too, almost everything is created with dbo. but I figured I would figured I would talk about the table prefixes only

Edited by Strix_Overflow

Share this post


Link to post
Share on other sites
Advertisement
The dbo part is the schema name. It's sort of a namespace that you can connect database logins to. It doesn't have to be "dbo", you can create any schemas you want and set tables and other objects as owned by that schema.

I never saw the schema name as part of the table name, not sure if other people see it that way though.

Share this post


Link to post
Share on other sites

Thanks for the reply. I had a look at this http://technet.microsoft.com/en-us/library/dd283095(v=SQL.100).aspx after I wrote the question. I was quite surprised I never came across this but then after doing some reading it makes sense as I am not doing DB work in a team however due to the way it helps combining tables I must admit it is much better than my current 'separate by underscore' approach.

 

Anyway thanks for the reply.

Share this post


Link to post
Share on other sites

Personally I name tables after what they contain, so Weapon, Player, Monster, etc.

 

I could maybe see the use in using tbl_ to differentiate between tables, views, etc, but in practice I've never needed it.

Share this post


Link to post
Share on other sites

dbo.tbl_ prefix

 

The use of prefixes such as tbl, sproc, vw (view), func (function), clr and so on are really just hints as to what the type of the database object you are dealing with is.

 

Sometimes when writing queries it is handy to know that the table you are querying really is a table and not a view. Mostly helpful in really big projects (i.e. "I know I have to call a stored procedure, but what was the name again?? oh i'll type .sproc_ first to get the list of 100 in code completion and hide the 100's of tables").

 

Personally I don't care what naming conventions are used as long as they are consistently applied, my old boss on the other hand would often say "Mr Codd would be turning in his grave!" when he saw something he didn't like - including tbl_ prefixes and pluralisation smile.png.

 

(edit: sometimes what technology you use impacts your naming convention, e.g. using the Entity Framework or other ORM tools might steer you towards using singular or plural depending on the implementation and what the code it generates looks like)

Edited by spazzarama

Share this post


Link to post
Share on other sites
Sign in to follow this  

  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

GameDev.net is your game development community. Create an account for your GameDev Portfolio and participate in the largest developer community in the games industry.

Sign me up!