web-dev-qa-db-fra.com

Quelles sont les conventions de dénomination pour MongoDB?

Existe-t-il un ensemble de conventions de dénomination préférées pour les entités MongoDB, telles que bases de données, collections, noms de champs?

Je pensais dans le sens suivant:

  • Bases de données: comprennent le but (Word au singulier) et se terminent par "db" - toutes les lettres minuscules: imagedb, Resumedb, memberdb, etc.
  • Collections: pluriel en minuscule: images, CV,
  • Champs de document: lowerCamelCase, par exemple memberFirstName, NomFichier, etc
160
Andrey
  1. Keep'em short: Optimisation du stockage de petits objets , SERVER-86 . Stupide mais vrai.

  2. J'imagine que les règles applicables aux bases de données relationnelles devraient s'appliquer ici. Et après tant de décennies, il n’ya toujours pas d’accord sur le point de savoir si les tables SGBDR doivent être nommées singulières ou plurielles ...

  3. MongoDB parle JavaScript, utilisez donc les conventions de nommage JS de camelCase.

  4. La documentation officielle de MongoDB mentionne que vous pouvez utiliser des traits de soulignement. L'identifiant intégré est également nommé _id _ (mais cela peut être pour indiquer que _id est destiné à être privé, interne, jamais affiché ou modifié.

113

[~ # ~] base de données [~ # ~]

  • affaire de chameau
  • ajouter DB à la fin du nom
  • make singular (les collections sont au pluriel)

MongoDB donne un exemple de Nice:

Pour sélectionner une base de données à utiliser, dans le shell mongo, exécutez l'instruction use <db>, comme dans l'exemple suivant:

utilise myDB
utilise myNewDB

Contenu de: https://docs.mongodb.com/manual/core/databases-and-collections/#databases

[~ # ~] collections [~ # ~]

  • Noms minuscules: évite les problèmes de sensibilité à la casse, les noms de collection MongoDB sont sensibles à la casse.

  • Pluriel: est plus évident de nommer une collection de quelque chose au pluriel, par exemple. "fichiers" plutôt que "fichier"

  • > Pas de séparateur de mots: Évite les problèmes de personnes différentes (incorrectement) séparer les mots (nom d'utilisateur <-> nom_utilisateur, prénom_nom <->
    Prénom). Celui-ci est à débattre selon quelques personnes
    par ici mais à condition que l'argument soit isolé des noms de collection, je ne pense pas que cela devrait être le cas;) Si vous vous trouvez en train d'améliorer le
    lisibilité du nom de votre collection en ajoutant des traits de soulignement ou
    camelLe nom de votre collection est probablement trop long ou devrait utiliser
    périodes, selon le cas, qui constituent la norme de collecte
    catégorisation.

  • Notation par points pour les collections plus détaillées: Donne une indication de la relation entre les collections. Par exemple, vous pouvez être raisonnablement sûr de pouvoir supprimer "users.pagevisits" si vous avez supprimé "utilisateurs", à condition que les personnes qui ont conçu le schéma aient fait du bon travail.

Contenu de: http://www.tutespace.com/2016/03/schema-design-and-naming-conventions-in.html

Pour les collections, je suis ces modèles suggérés jusqu’à ce que je trouve la documentation officielle de MongoDB.

42
BBi7

Même si aucune convention n'est spécifiée à ce sujet, références manuelles portent systématiquement le même nom que la collection référencée dans la documentation Mongo, pour les relations un à un. Le nom suit toujours la structure <document>_id.

Par exemple, dans une collection dogs, un document aurait des références manuelles à des documents externes portant le nom suivant:

{
  name: 'fido',
  owner_id: '5358e4249611f4a65e3068ab',
  race_id: '5358ee549611f4a65e3068ac',
  colour: 'yellow'
  ...
}

Ceci suit la convention de Mongo de nommer _id l'identifiant de chaque document.

20
danza

Convention de nommage pour la collecte

Afin de nommer une collection quelques précautions à prendre:

  1. Une collection avec une chaîne vide (“”) n'est pas un nom de collection valide.
  2. Un nom de collection ne doit pas contenir le caractère null car cela définit la fin du nom de la collection.
  3. Le nom de la collection ne doit pas commencer par le préfixe "système", car il est réservé aux collections internes.
  4. Il serait bon de ne pas contenir le caractère "$" dans le nom de la collection, car les différents pilotes disponibles pour la base de données ne prennent pas en charge "$" dans le nom de la collection.

    Les choses à garder à l'esprit lors de la création d'un nom de base de données sont les suivantes:

  5. Une base de données avec une chaîne vide (“”) n'est pas un nom de base de données valide.
  6. Le nom de la base de données ne peut pas dépasser 64 octets.
  7. Les noms de base de données sont sensibles à la casse, même sur des systèmes de fichiers non sensibles à la casse. Ainsi, il est bon de garder le nom en minuscule.
  8. Un nom de base de données ne peut contenir aucun des caractères “/, \,.,“, *, <,>,:, |,?, $, ”. Il ne peut pas non plus contenir un seul espace ou un caractère nul.

Pour plus d'informations. Veuillez vérifier le lien ci-dessous: http://www.tutespace.com/2016/03/schema-design-and-naming-conventions-in.html

6

Jusqu'à ce que nous obtenions SERVEUR-86 , il est conseillé de garder les noms de champs aussi courts que possible, en particulier lorsque vous avez beaucoup d'enregistrements.

En fonction de votre cas d'utilisation, les noms de champs peuvent avoir un impact considérable sur le stockage. Je ne comprends pas pourquoi ce n’est pas une priorité plus importante pour MongoDb, car cela aura un impact positif sur tous les utilisateurs. Si rien d'autre, nous pouvons commencer à être plus descriptifs avec nos noms de champs, sans penser à deux fois aux coûts de bande passante et de stockage.

S'il vous plaît faites vote .

2
FlappySocks

Je pense que ce sont toutes les préférences personnelles. Mes préférences proviennent de NHibernate, dans .NET, avec SQL Server. Elles sont donc probablement différentes de celles des autres.

  • Bases de données: L'application utilisée. Ex: Stackoverflow
  • Collections: Singulier au nom, ce que ça va être une collection de, ex: Question
  • Champs de document, ex: MemberFirstName

Honnêtement, peu importe, tant que c'est cohérent pour le projet. Il suffit de se rendre au travail et ne pas transpirer les détails: P

2
Rex Morgan