2010-07-15 6 views
15

Lorsque vous nommez les tables et le schéma de la base de données, il est préférable d'utiliser le singulier ou le pluriel. Par exemple. devrait-il être des clients ou des clients?Tables de base de données nommant, pluriel ou singulier

Et quand nommer devrait-il être Capital tel que le client ou le client? Toute bonne pratique concernant la dénomination?

+0

également similaire à: [? Base de données, table et colonne Conventions d'attribution de noms] (http://stackoverflow.com/ questions/7662/database-table-et-column-nommage-conventions) – Mike

+0

Dupliqué par [Dilemme de nommage des tables: noms singuliers vs. noms pluriels] (http://stackoverflow.com/q/338156/90527), mais celui-ci plus d'attention. – outis

Répondre

20

Cette question appelle une guerre religieuse.

Je ne doute pas qu'il devrait être au pluriel parce que ...

  • Une table est une collection de lignes. La syntaxe SQL devient plus naturelle - SELECT * FROM Customers au lieu de SELECT * FROM Customer.
  • L'analogie à la POO - vous avez une classe Customer et une liste ou une autre collection de clients appelée Customers.
  • SELECT * FROM Customers AS Customer WHERE Customer.FirstName = 'John' - Customers fait référence à la table entière tandis que Customer fait référence à la ligne actuelle.

choses négatives

On doit changer plusieurs fois entre singulier et pluriel au cours du développement. Vous pouvez commencer par un modèle conceptuel - par exemple un modèle de relation d'entité - où le choix naturel est de nommer l'entité Customer. À partir de ce modèle, vous générez une base de données et devez le pluraliser pour obtenir la table Customers. Enfin, vous choisissez votre favori O/R mapper et il doit singulariser le nom à nouveau pour obtenir une classe nommée Customer.

Si vous devez le faire manuellement car l'outil est manque de soutien (par exemple EntityFramework avant .NET 4.0), il pourrait être un choix raisonnable de garder les noms de table singulier mais therfore obtenir une classe Customer au lieu de Customers sans changer à la main.

+8

+1 pour votre premier paragraphe, même si votre opinion est fausse :) – AakashM

+2

J'ai utilisé une dénomination singulière mais après avoir basculé sur des rails où le pluriel est la norme, la dénomination au pluriel semble plus naturelle. Cela est particulièrement vrai pour les requêtes – Tarscher

+0

Cela semble plus naturel mais je pensais que si cela avait des effets négatifs plus tard dans le développement etc ... –

7

nommage singulier.

tout tourne autour des tuples, pas des tables, et un tuple est un client, pas un client. aussi je préfère nommer en minuscules, mais c'est sans raison, je l'ai juste appris comme ça à l'école. En fin de compte, comme d'autres l'ont dit, c'est plutôt une question de préférence. plus important que le choix si utiliser pluriel ou singulier est de rester consistendu et de le faire de la même façon pour toutes les tables - si vous mélangez pluar et singulier, c'est un vrai gâchis.

6

Il est à peu près une question de préférence

4

sélectionnez-vous un recipe.ingredient ou un recipes.ingredient?

... ou sélectionnez-vous un ingredient de recipes au lieu d'un ingredient de recipe.

Choisissez-vous une liste recipe.ingredient, ou une liste recipes.ingredient?

... ou sélectionnez-vous une liste ingredient de recipes au lieu d'une liste ingredient de recipe?

Je pense que la cohérence est plus importante que la convention elle-même. Personnellement, je préfère les noms de tables minuscules, mais je ne vais pas défendre ce choix avec véhémence.

0

Mon choix sont Singulier et TitleCase de

le client est une entité. Table est la collection logique de plusieurs entités. Donc le pluriel est préféré.

Pour les noms de table, pascal case est mieux. c'est-à-dire, CustomerMaster.

Il est préférable d'utiliser un préfixe tel que tblCustomerMaster.

Si vous utilisez le nom du groupe comme préfixe, utilisez-le en majuscules comme, NewCustomer, OldCustomer

Questions connexes