Database tables naming, plural or singular
database, visual-studio
Solution
This question calls for a religious war.
I have no doubt it should be plural because...
- A table is a collection of rows.
- The SQL syntax becomes more natural - `SELECT * FROM Customers` instead of `SELECT * FROM Customer`.
- The analogy to OOP - you have a class `Customer` and a list or other collection of customers called `Customers`.
- `SELECT * FROM Customers AS Customer WHERE Customer.FirstName = 'John'` - `Customers` refers to the whole table while `Customer` refers to the current row.
Negative things
One has to switch several times between singular and plural during the development. You may start with a conceptual model - for example an entity relationship model - where the natural choice is to name the entity `Customer`. From this model you generate a database and must pluralize the name to get the `Customers` table. Finally you pick your favourit O/R mapper and it has to singularize the name again to get a class named `Customer`.
If you have to do this manually because the tool is lacking support (for example EntityFramework prior to .NET 4.0) it might be a reasonable choice to keep the table names singular but therfore get a class `Customer` instead of `Customers` without changing it by hand.
Problem
When naming tables and schema of the db is it best to use singular or plural. For example. should it be Customers or Customer? And when naming should it be Capital such as Customer or customer? Any best practice regarding naming?