What's the most typical naming convention for SQL Database tables? Maybe it was in the past one of the ways and today it's easier to do one other way? Do you know the most typical practices now?

I usually use plural for table names and singular for column names. Not too there's any real technical reason for this, that's precisely what I favor.

Does not much matter, as long as you're consistent.

I.e.


+========+       +==========+

 Posts          Customers    

+--------+       +----------+

 idPost    ->  idUser   

 Poster  <-    Title     

+========+       +==========+

My reasoning for this is exactly what occurs when you are writing the particular query:

SELECT idPost, Name FROM Posts
INNER JOIN Users ON Poster = idUser

If you are using singular, it appears like you are choosing from the publish, instead of in the group of all posts, and joining to some single user, rather than all customers.

Not a chance - singular for me personally. It is the "USER" table.

plural for table names - because tables store customers, items, products, and so forth. singular names for models because they are single item - User, Product, Item. for table fields I comply with mysql naming convention - user_id, product_cost, item_count.

Use them, but use consistently - that might be my answer in the end.

The conventional pattern for LINQ to SQL (and EF,most probably), Ruby/Rails, etc. -- that's frameworks that choose convention over configuration -- is by using plural table names.

It's my job to title the table for the way I without effort connect with it.