Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Dilemme de nommage de table :noms au singulier ou au pluriel

J'avais la même question, et après avoir lu toutes les réponses ici, je reste définitivement avec SINGULAR, raisons :

Raison 1 (Concept). Vous pouvez penser à un sac contenant des pommes comme "AppleBag", peu importe qu'il contienne 0, 1 ou un million de pommes, c'est toujours le même sac. Les tables ne sont que cela, des conteneurs, le nom de la table doit décrire ce qu'elle contient, pas la quantité de données qu'elle contient. De plus, le concept de pluriel concerne davantage une langue parlée (en fait pour déterminer s'il y en a un ou plusieurs).

Raison 2 . (Commodité). il est plus facile de sortir avec des noms au singulier qu'avec des noms au pluriel. Les objets peuvent avoir des pluriels irréguliers ou pas du tout au pluriel, mais en auront toujours un au singulier (à quelques exceptions près comme News).

  • Client
  • Commander
  • Utilisateur
  • État
  • Actualités

Raison 3 . (Esthétique et Ordre). Spécialement dans les scénarios maître-détail, cela se lit mieux, s'aligne mieux par nom et a un ordre plus logique (Maître d'abord, Détail ensuite) :

  • 1.Commander
  • 2.Détail de la commande

Comparé à :

  • 1.Détails de la commande
  • 2.Commandes

Raison 4 (Simplicité). Tous ensemble, Noms de Table, Clés Primaires, Relations, Classes d'Entité... vaut mieux être conscient d'un seul nom (singulier) au lieu de deux (classe singulière, table plurielle, champ singulier, maître-détail singulier-pluriel.. .)

  • Customer
  • Customer.CustomerID
  • CustomerAddress
  • public Class Customer {...}
  • SELECT FROM Customer WHERE CustomerID = 100

Une fois que vous savez que vous traitez avec "Client", vous pouvez être sûr que vous utiliserez le même mot pour tous vos besoins d'interaction avec la base de données.

Raison 5 . (Mondialisation). Le monde devient plus petit, vous pouvez avoir une équipe de différentes nationalités, tout le monde n'a pas l'anglais comme langue maternelle. Il serait plus facile pour un programmeur de langue anglaise non native de penser à "Repository" qu'à "Repositories", ou "Status" au lieu de "Statuses". Avoir des noms au singulier peut entraîner moins d'erreurs causées par des fautes de frappe, gagner du temps en n'ayant pas à penser "est-ce un enfant ou des enfants ?", améliorant ainsi la productivité.

Raison 6 . (Pourquoi pas?). Cela peut même vous faire gagner du temps d'écriture, économiser de l'espace disque et même prolonger la durée de vie de votre clavier d'ordinateur !

  • SELECT Customer.CustomerName FROM Customer WHERE Customer.CustomerID = 100
  • SELECT Customers.CustomerName FROM Customers WHERE Customers.CustomerID = 103

Vous avez enregistré 3 lettres, 3 octets, 3 frappes de clavier supplémentaires :)

Et enfin, vous pouvez nommer ceux qui gâchent avec des noms réservés comme :

  • Utilisateur> LoginUser, AppUser, SystemUser, CMSUser,...

Ou utilisez les fameux crochets [Utilisateur]