Comment nommer mes tables lors de la création d'une nouvelle base de données?
Singulier: Client
ou pluriel: Clients
?
database-design
naming-convention
John Isaiah Carmona
la source
la source
person NAMED 'fred' EARNS 20,000
(où les noms en majuscules sont les tables). 2) utiliser le nom de l'entreprise pour l'ensemble par exemplePERSONNEL
,PAYROLL
,ORG_CHART
, etc.Réponses:
Dépend de vous. Juste être cohérent si.
Personnellement, je préfère le singulier en fonction de ce que chaque * rangée "stocke: Ordre, Produit, Utilisateur, Article, etc.
Cela correspond à ma modélisation (via la modélisation de rôle d'objet) dans laquelle j'utilise des entités / types singuliers.
Modifier:
L' une des raisons est que pluriel échoue lorsque vous avez des tables de liens:
Orders
,Products
donnerionsOrderProducts
ouOrdersProducts
. Ni semble correctOu des tables d'historique (bien sûr, vous pouvez utiliser des schémas pour cela):
Orders
->OrdersHistory
ou (non!)OrdersHistories
? Ne serait pasOrder
->OrderHistory
mieux?la source
Singular
ouPlural
?TablenameID
ouTablenameCode
outablename_id
. Avec plusieurs noms de table, vous vous retrouvez avecOrders.OrdersID
(ce qui ne semble pas correct) ou avecOrders.OrderID
où vous utilisez pluriel pour les noms de table, mais changez au singulier pour les préfixes de colonne.En ce qui concerne les noms de table au singulier ou au pluriel, le sujet semble être controversé, mais il ne devrait pas l'être.
Bien qu'une table soit une collection de plusieurs enregistrements, une table est nommée d'après la définition du type d'enregistrement qu'elle contient. Si une table était autorisée à porter un nom différent de celui du type d’enregistrement qu’elle contient, vous pouvez lui attribuer un nom au pluriel, afin d’avoir par exemple une table Employees contenant plusieurs enregistrements Employee. Mais le concepteur de SQL n'a pas fourni de noms distincts pour les tables et les types d'enregistrement.
Les choses fonctionnent plus logiquement pour les programmes orientés objet qui utilisent les données, si le nom d'un type d'enregistrement (et par extension, le nom de la table) est conservé au singulier, car il correspond au nom de la classe que vous utiliseriez pour décrire un enregistrement. .
Si vous souhaitez ensuite identifier une collection dans le programme, vous pouvez utiliser un pluriel ou, mieux, un modificateur approprié, tel que EmployeeList ou EmployeeArray.
Il existe également un problème de pluriels irréguliers pour la génération automatique de code et de programmeurs ayant des antécédents linguistiques différents ou des idées sur la formation de pluriels dans un programme.
La langue anglaise n'est pas un langage de programmation correct et approprié. Il est erroné d'essayer de rendre les déclarations de base de données et de programme conformes à l'anglais car il semble préférable de lire l'une de ces déclarations.
la source
Tout comme la réponse de @ gbn, je pense que c’est surtout une question de préférences et, tout comme lui, je recommande à tout choix que vous le fassiez de l’appliquer partout (dans cette base de données au moins). La cohérence en vaut la peine.
Ma préférence, cependant, est que le pluriel sonne mieux dans les
SELECT
énoncés:Je veux dire que dans ce cas, au moins, il y a plusieurs personnes dans la table et plusieurs d'entre elles sont retournées au client.
la source
"ordre" est un mot réservé. "ordres" n'est pas
"utilisateur" est un mot réservé. "utilisateurs" n'est pas
"session" est un mot réservé. "sessions" n'est pas
"résultat" est un mot réservé. "résultats" n'est pas
"relatif" est un mot réservé. "parents" n'est pas
...
Ceux-ci semblent être des mots courants qui pourraient figurer dans une base de données métier. Les mots pluriels semblent être moins communs comme mots clés que les mots singuliers. Par conséquent, il pourrait être avantageux d’utiliser plusieurs noms de table afin d’éviter les conflits avec les mots-clés SQL.
la source
Je crois que la table SQL devrait avoir des noms au pluriel. Il se lit simplement beaucoup mieux.
Une table de registres de livres devrait s'appeler des livres. L'ORM devrait utiliser la même convention. L'objet Livres est une collection et préside tous les enregistrements de la table Livres. Un objet Book préside un seul enregistrement.
Cela rend le codage plus naturel.
la source
table.field
, toutauthor.authorName
va parfaitement bien. Obtenez le nom d'auteur de la table author. Quand il n'y a qu'un seul auteur, le pluriel a également une mauvaise image.authors.authorName
quand il n'y a qu'un seul auteur? C'est plus déroutant imo. Bien sûr, cela est bien meilleur maintenant que nous avons supprimé le style de phrase mysql_ et que nous disposons de meilleurs moyens d'accéder aux données :)Après avoir travaillé avec la programmation pendant quelques années, j'ai conclu que la pluralisation est une complication inutile. Mon opinion est que, selon la philosophie KISS, un programmeur doit rechercher la solution la plus simple et la plus simple à tous les problèmes pour des raisons de temps et d'efficacité. Ainsi, le singulier vous donne moins de travail dans tous les scénarios.
la source
C'est une chose très personnelle. J'utilise la forme singulière depuis 30 ans. Mais je peux voir pourquoi les gens aiment les pluriels. Les livres - auteurs sont intéressants car je pense que les auteurs de livres ne se sont pas trompés. Un livre peut avoir un ou plusieurs auteurs. Et les auteurs peuvent avoir écrit un ou plusieurs livres (par exemple co-écrit). Cela dépend également de la façon dont vous traitez les livres écrits par plusieurs auteurs. Je suis d'accord avec d'autres réponses. choisissez-en un et soyez cohérent. En ce qui concerne les problèmes de mots réservés. Je pense qu'il n'est pas difficile de trouver des noms de solution de contournement. utilisateur -> utilisateur_app, session -> session_session, commande -> commande_client
la source
Nous voyons les choses sous des perspectives différentes, et je pense que les deux camps sont identifiés par:
Singular ("utilisateur")
Personne qui établit une corrélation entre le nom de la table et le fait qu'il représente un conteneur pouvant contenir plusieurs lignes.
Donc, "conteneur utilisateur" peut contenir plusieurs lignes.
Pluriel ("utilisateurs")
Personne qui ne fait pas la corrélation entre le nom de la table et le fait qu'il représente un conteneur. Bien sûr, ils savent que c'est un conteneur, mais ce n'est pas dans le nom.
Par exemple,
une "boîte à oeufs" peut contenir plusieurs oeufs, mais cela est évident car la référence du conteneur est dans le nom, ce qui permet de créer plusieurs oeufs. Cependant, avec le nom singulier "utilisateur" de la table, la référence du conteneur n’est pas dans le nom. Par exemple, "user_container" serait probablement acceptable pour les personnes qui préfèrent les noms au pluriel.
Je pense que cela est également dû au fait que le pluriel est une pratique courante depuis des années et que la plupart des supports pédagogiques en ligne le permettent.
Cela dit, je pense que techniquement, le singulier est plus précis étant donné que nous nommons un seul conteneur et que les conteneurs peuvent contenir plusieurs lignes (ou une seule).
Les personnes semblent lier mentalement le lien entre le nom de la table et le contenu (plusieurs lignes nécessitent un nom au pluriel) plutôt que de lier mentalement le conteneur nommé au contenu (un conteneur en autorise plusieurs).
Comme toujours, il n’ya souvent ni bon ni mauvais, et c’est davantage ce qui convient au scénario et surtout la cohérence avec ce que vous choisissez.
Si vous ne faites que le projet et qu'il n'y a pas de vraie raison d'aller dans l'un ou l'autre sens, faites ce que vous estimez être le meilleur, ou juste la préférence. Appliquez la même chose dans une équipe de développement et prenez une décision unanime.
la source