Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Dilema de nomenclatura de tabelas:nomes singulares versus nomes plurais


Eu tinha a mesma pergunta e, depois de ler todas as respostas aqui, definitivamente fico com o SINGULAR, motivos:

Motivo 1 (Conceito). Você pode pensar em um saco contendo maçãs como "AppleBag", não importa se contém 0, 1 ou um milhão de maçãs, é sempre o mesmo saco. Tabelas são apenas isso, contêineres, o nome da tabela deve descrever o que ela contém, não quantos dados ela contém. Além disso, o conceito de plural é mais sobre um idioma falado (na verdade, para determinar se existe um ou mais).

Motivo 2 . (Conveniência). é mais fácil sair com nomes no singular do que no plural. Objetos podem ter plurais irregulares ou não plurais, mas sempre terão um singular (com poucas exceções como News).
  • Cliente
  • Encomenda
  • Usuário
  • Estado
  • Notícias

Motivo 3 . (Estética e Ordem). Especialmente em cenários mestre-detalhe, isso lê melhor, alinha melhor por nome e tem uma ordem mais lógica (mestre primeiro, detalhe depois):
  • 1.Pedido
  • 2.Detalhes do pedido

Comparado com:
  • 1.Detalhes do pedido
  • 2.Pedidos

Motivo 4 (Simplicidade). Juntando tudo, nomes de tabelas, chaves primárias, relacionamentos, classes de entidades... .)
  • Customer
  • Customer.CustomerID
  • CustomerAddress
  • public Class Customer {...}
  • SELECT FROM Customer WHERE CustomerID = 100

Quando 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.

Motivo 5 . (Globalização). O mundo está ficando menor, você pode ter uma equipe de diferentes nacionalidades, nem todo mundo tem o inglês como língua nativa. 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, economizar tempo por não ter que pensar "é criança ou criança?", melhorando assim a produtividade.

Motivo 6 . (Por que não?). Ele pode até economizar tempo de escrita, economizar espaço em disco e até mesmo fazer o teclado do computador durar mais!
  • SELECT Customer.CustomerName FROM Customer WHERE Customer.CustomerID = 100
  • SELECT Customers.CustomerName FROM Customers WHERE Customers.CustomerID = 103

Você salvou 3 letras, 3 bytes, 3 toques extras no teclado :)

E, finalmente, você pode nomear aqueles que estão bagunçando com nomes reservados como:
  • Usuário> LoginUser, AppUser, SystemUser, CMSUser,...

Ou use os infames colchetes [Usuário]