Что такое соглашения об именах для MongoDB?

есть набор предпочтительных правил именования для MongoDB образований, таких как базы данных, коллекции, имена полей?

Я думал примерно так:

  • базы данных: состоят из цели (слово в единственном числе) и заканчиваются на "db" – все нижний регистр: imagedb, resumedb, memberdb и т. д.
  • коллекции: множественное число в нижнем регистре: изображения, резюме,
  • поля документа: lowerCamelCase, например memberFirstName, fileName и т. д.

6 ответов


  1. держите их короткими:Оптимизация хранения мелких предметов, сервер-863. Глупо, но верно.

  2. Я думаю, что здесь должны применяться те же правила, которые применяются к базам данных отношений. И после стольких десятилетий до сих пор нет согласия, следует ли таблицы РСУБД называть единственными или множественными...

  3. MongoDB говорит на JavaScript, поэтому используйте соглашения об именах JS верблюжьего.

  4. в официальной документации MongoDB упоминается, что вы можете использовать подчеркивания, также встроенный идентификатор называется _id (но это может означать, что _id предназначен для частного, внутреннего, никогда не отображается или редактируется.


даже если соглашение об этом не указано,руководство по литература последовательно названы в честь ссылочной коллекции в документации Mongo для отношений "один к одному". Название всегда следует за структурой <document>_id.

например,dogs коллекция, документ будет иметь ручные ссылки на внешние документы с таким именем:

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

Это следует конвенции Монго наименования _id идентификатор для каждого документ.


база данных

  • camelCase
  • добавить DB в конце имени
  • сделать сингулярным (коллекции во множественном числе)

MongoDB заявляет хороший пример:

чтобы выбрать базу данных для использования, в оболочке mongo выполните заявление, как в следующем примере:

использовать myDB
использовать myNewDB

контент из: https://docs.mongodb.com/manual/core/databases-and-collections/#databases

коллекции

  • перевод имен: позволяет избежать проблем с чувствительностью к регистру, имена коллекций MongoDB чувствительны к регистру.

  • МН: более очевидно, чтобы обозначить коллекцию чего-то как множественное число, например, "файлы", а не "файл"

  • >нет разделителей слов: избегает проблем, когда разные люди (неправильно) разделяют слова (username user_name, first_name
    свойства FirstName.) Это один для обсуждения в соответствии с несколькими людьми
    здесь, но при условии, что аргумент изолирован от имен коллекций Я не думаю, что это должно быть ;) если вы обнаружите, что улучшаете
    читаемость имени вашей коллекции путем добавления подчеркиваний или
    camelCasing имя вашей коллекции вероятно, слишком долго или следует использовать
    соответствующие периоды, которые являются стандартом для сбора
    категоризация.

  • точечная нотация для более высоких коллекций деталей: дает некоторое представление о том, как связаны коллекции. Например, вы можете быть достаточно уверен, что вы можете удалить " пользователи.pagevisits", если вы удалили "пользователи", при условии, что люди, которые разработали схему, сделали хорошее работа.

содержание от: http://www.learnit.net.in/2016/03/schema-design-and-naming-conventions-in.html

для коллекций я следую этим предложенным шаблонам, пока не найду официальную документацию MongoDB.


соглашение об именах для коллекции

чтобы назвать коллекцию, необходимо принять несколько мер предосторожности:

  1. коллекции с пустой строкой ("") не является допустимым именем коллекции.
  2. имя коллекции не должно содержать символ null, поскольку это определяет конец имени коллекции.
  3. имя коллекции не должно начинаться с префикса " system.- поскольку это зарезервировано для внутренних коллекций.
  4. будет хорошо не содержать символ " $ "в имени коллекции, так как различные драйверы, доступные для базы данных, не поддерживают" $ " в имени коллекции.

    вещи, которые следует иметь в виду при создании имени базы данных :

  5. базы данных с пустой строкой ("") не является допустимым именем базы данных.
  6. имя базы данных не может быть больше 64 байт.
  7. имя базы данных чувствительно к регистру, даже в файловых системах, не чувствительных к регистру. Таким образом, хорошо держать имя в Нижнем случай.
  8. имя базы данных не может содержать ни одного из этих символов "/,\,., ", *, , :, |, ?,$,". Он также не может содержать ни одного пробела или символа null.

для получения дополнительной информации. Пожалуйста, проверьте ссылку ниже: http://www.learnit.net.in/2016/03/schema-design-and-naming-conventions-in.html


Я думаю, что это все личные предпочтения. Мои предпочтения исходят из использования NHibernate в .NET с SQL Server, поэтому они, вероятно, отличаются от того, что используют другие.

  • базы данных: приложение, которое используется.. пример: Stackoverflow
  • коллекции: единственное число по названию, что это будет коллекция, например: вопрос
  • поля документа, например: MemberFirstName

честно говоря, это не имеет большого значения, если это последовательно для проекта. Просто принимайтесь за работу и не потейте детали: P


пока мы не получим сервер-863 рекомендуется сохранять имена полей как можно короче особенно, когда у тебя много записей.

в зависимости от вашего варианта использования, имена полей могут иметь огромное влияние на хранение. Не могу понять, почему это не является более высоким приоритетом для MongoDb, так как это окажет положительное влияние на всех пользователей. Если ничего другого, мы можем начать быть более описательными с нашими именами полей, не думая дважды о пропускной способности и хранении затраты.

пожалуйста голосование.