Eu tinha a mesma pergunta e, depois de ler todas as respostas aqui, definitivamente fico com SINGULAR, razões:
Razão 1 (conceito). Você pode pensar em uma bolsa contendo maçãs como "AppleBag", não importa se contém 0, 1 ou um milhão de maçãs, é sempre a mesma bolsa. As tabelas são apenas isso, contêineres, o nome da tabela deve descrever o que ela contém, não a quantidade de dados que ela contém. Além disso, o conceito plural é mais sobre um idioma falado (na verdade, para determinar se existe um ou mais).
Razão 2 . (Conveniência). é mais fácil sair com nomes singulares do que com nomes plurais. Os objetos podem ter plurais irregulares ou não plurais, mas sempre terão um singular (com poucas exceções, como Notícias).
- Cliente
- Ordem
- Do utilizador
- Status
- Notícia
Razão 3 . (Estética e Ordem). Especialmente em cenários de detalhes mestres, ele lê melhor, se alinha melhor por nome e tem uma ordem mais lógica (mestre primeiro, detalhe segundo):
Comparado com:
- 1.OrderDetails
- 2. pedidos
Razão 4 (Simplicidade). Juntos, nomes de tabelas, chaves primárias, relacionamentos, classes de entidade ... é melhor ter conhecimento de apenas um nome (singular) em vez de dois (classe singular, tabela plural, campo singular, detalhe singular-plural .. .)
Customer
Customer.CustomerID
CustomerAddress
public Class Customer {...}
SELECT FROM Customer WHERE CustomerID = 100
Depois que você souber que está lidando com "Cliente", pode ter certeza de que usará a mesma palavra para todas as suas necessidades de interação com o banco de dados.
Razão 5 . (Globalização). O mundo está ficando menor, você pode ter uma equipe de diferentes nacionalidades, nem todo mundo tem o inglês como idioma nativo. Seria mais fácil para um programador não nativo de inglês pensar em "Repositório" do que em "Repositórios" ou "Status" em vez de "Status". Ter nomes singulares pode levar a menos erros causados por erros de digitação, economizando tempo por não ter que pensar "é Criança ou Crianças?", Aumentando assim a produtividade.
Razão 6 . (Por que não?). Pode até economizar tempo de gravação, economizar espaço em disco e até fazer com que o teclado do computador dure mais tempo!
SELECT Customer.CustomerName FROM Customer WHERE Customer.CustomerID = 100
SELECT Customers.CustomerName FROM Customers WHERE Customers.CustomerID = 100
Você salvou 3 letras, 3 bytes, 3 toques extras no teclado :)
E, finalmente, você pode nomear aqueles que mexem com nomes reservados, como:
- Usuário> LoginUser, AppUser, SystemUser, CMSUser, ...
Ou use os famosos colchetes [Usuário]