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 s'il contient 0, 1 ou un million de pommes, c'est toujours le même sac. Les tables ne sont que des conteneurs, le nom de la table doit décrire ce qu'il contient, pas la quantité de données qu'il contient. De plus, le concept pluriel est davantage une langue parlée (en fait pour déterminer s'il y en a une ou plusieurs).
Raison 2 . (Commodité). il est plus facile de sortir avec des noms singuliers qu'avec des noms pluriels. Les objets peuvent avoir des pluriels irréguliers ou pas du tout pluriels, mais auront toujours un pluriel (à quelques exceptions près comme News).
- Client
- Ordre
- Utilisateur
- Statut
- Nouvelles
Raison 3 . (Esthétique et ordre). Surtout 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):
Par rapport à:
- 1.OrderDetails
- 2.Commandes
Raison 4 (simplicité). Ensemble, les noms de table, les clés primaires, les relations, les classes d'entités ... est préférable de ne connaître qu'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 le «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 se rétrécit, 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 non natif de langue anglaise de penser à "Repository" plutôt qu'à "Repositories", ou "Status" au lieu de "Statuses". Avoir des noms singuliers peut réduire le nombre d'erreurs causées par les fautes de frappe, gagner du temps en évitant de penser "est-ce un enfant ou des enfants?", Améliorant ainsi la productivité.
Raison 6 . (Pourquoi pas?). Il 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 = 100
Vous avez enregistré 3 lettres, 3 octets, 3 touches de clavier supplémentaires :)
Et enfin, vous pouvez nommer ceux qui jouent avec des noms réservés comme:
- Utilisateur> LoginUser, AppUser, SystemUser, CMSUser, ...
Ou utilisez les fameux crochets [Utilisateur]