2009-06-02 9 views
3

Je mappe les tables de mes bases de données sur mes objets Java. En général, je nomme mes tables au pluriel en ce qu'une table contenant des informations sur les livres s'appelle BOOKS. L'objet Java représente cependant un livre et devrait s'appeler Book. De même pour AUTEURS/Auteur etc.Conventions de dénomination lors du mappage O/R

D'autre part, son genre de simpliste à donner la même chose à l'objet de domaine et la table.

Existe-t-il une sorte de convention de dénomination que les gens suivent? Je suppose que cela s'applique aux applications en général et pas seulement en faisant le mappage O/R.

Répondre

8

Vos pensées initiales sont sur place. Les objets doivent être au singulier, car chaque objet est individuel.

Les tables doivent être au pluriel, car la table contient tous.

Découvrez les conventions de nommage intégrées dans Ruby on Rails, elles sont pertinentes.

+0

Je tapais une réponse très similaire à celle-ci. Dans le monde du Web, Ruby on Rails est en quelque sorte la norme sur la façon dont il gère ORM, alors chercher des réponses est une excellente suggestion. +1 :-) –

+0

Vous pourriez argumenter que les noms de tables devraient être au singulier puisque chaque rangée représente une instance unique de l'entité. – GreenieMeanie

+0

@GreenieMeanie - mon choix de nommer les tables au pluriel vient de vouloir que mon SQL lise plus naturellement. Pour moi "Sélectionnez * de Personnes où ..." lit plus naturellement que "Sélectionnez * de Personne où ...". YMMV. – Bevan

1

J'utilise SubSonic dans mon application ASP.NET, et je supprime les pluriels lors du nommage des classes ActiveRecord. C'est plus une question de style qu'une norme.

Je préfère travailler avec Invoice plutôt que Invoices parce que je suis habituellement traiter 1 enregistrement à la fois.

0

Généralement, je m'assure juste d'utiliser la même norme partout, et aussi que j'utilise des noms logiques pour mes noms.

Alors les livres deviennent quelque chose comme dbbooks auteurs, devient DbAuthors etc.

5

Nous utilisons singulier pour les noms de table et pour les classes OM. Il est plus logique, pour moi, de dire

person.last_name

que

people.last_name,

si j'écris SQL ou Java (où, bien sûr, ce serait person.lastName, mais vous obtenez le point).

+1

L'avantage pour les tables nommées singulières est que vous n'avez jamais à faire face à des problèmes de pluralisation: 's' ou 'es', -f + 'ves' (Voiture/voitures, bus/bus, loups/loups) et une foule d'irréguliers (Enfant/enfants, oie/oie, orignal/orignal). Rails a un système de règles spécial pour gérer cela, qui est configurable par projet, mais je le vois comme un problème inutile. – Chadwick

0

CJ Date n'utilise pas de noms au pluriel et vous non plus. La seule exception est le mot "VENTES". Autre que cela, utilisez des noms singuliers.

comparer

user.email =? et dans account.value (1,2,3)

à

users.email =? et les comptes.La valeur de (1,2,3)

ou (la pire option)

users.email =? et account.values ​​in (1,2,3)

0

jOOQ génère des classes Java à partir de votre schéma de base de données. Les classes modélisant les tables seront appelées les mêmes que la table elle-même, par ex.

  • AUTHOR>Author
  • BOOKS>Books

Les classes de modélisation des objets (ou dossiers) seront suffixé avec "Record":

  • AUTHOR>AuthorRecord
  • BOOKS>BooksRecord

C'est assez intuitif et générique, peu importe ce que vos tables sont appelés. Voir

http://www.jooq.org