Технический блог Анкит Арора, студентка учебного курса GoHaness Fullstack по программированию

При условии, что в ваших системах установлены mongo, mongo shell и mongoose. Я продолжу, чтобы показать вам, как разработать схему винного магазина. Этот пример проведет вас через весь процесс разработки схемы и их отношения друг с другом.

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

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

1. Сущности: Какими вы представляете себе сущности?

2.Отношения: какие отношения он имеет с другими объектами?

3. Запросы. Будет ли он давать ожидаемые результаты, когда вы пишете запрос?

После долгих размышлений я выделил 5 основных сущностей, каждая из которых имеет разные отношения друг с другом.

Бренд
ликер
пьющий
коктейль
ликер

Здесь и как проявляется идеология, доктрина построения этой схемы? Посмотри

Простая марка спиртных напитков может означать несколько разных спиртных напитков, с этой простой мыслью, вот наша сущность, обретающая форму и почти готовая к тому, чтобы стать частью нашей базы данных mongo

— — — — — — — — — — -

Сущности:

У бренда много спиртных напитков - Отношения: один ко многим

LiquorBrand {

id: mongoose.object.id,
name: String,
liquidiorids: []

}

Связь, которую вы видите выше, была установлена ​​с помощью «ссылки». Техника, при которой уникальные идентификаторы сущностей должны упоминаться как массив в сущности, частью которой они являются.

В некоторых других случаях мы также используем «встраивание», которое увидим позже. Если вы присмотритесь, идентификаторы каждой сущности будут автоматически назначаться во время выполнения при использовании мангуста в качестве средства сопоставления объектных отношений.

— — — — — — — — — — — —

Каждая сущность связана с какой-то другой сущностью. Ликер употребляют несколько пьющих, поэтому он по своей природе имеет отношение один ко многим с пьющим. Поскольку пьющий является отдельным лицом, он может быть включен в состав алкогольных напитков только путем ссылки.

ликер {

id: mongoose.object.id,
name: String,
brand: String,
drinkers_id: []
label: String,
liquiortype_id: []

}

— — — — — — — — — — —

мы могли бы также сделать запросы для фильтрации результатов на основе того, какие коктейли сделаны из рома. Теперь при создании объекта в этом контексте следует учитывать две вещи. Во-первых, коктейль содержит ликер. Так можно ли добавить ликер в коктейль? Это потребовало бы от нас упоминания Liquiortype_Id в коктейлях, что потребовало бы немного больше времени для запроса, чтобы вернуть все коктейли, приготовленные из этого ликера, просматривая каждый коктейль для идентификатора, который он ищет.

Мы сокращаем время обработки запроса, просто встраивая сущность cocktail в тип Liquior и бах! Все готово ..

тип спиртного {

id: mongoose.object.id,
тип: String,
Процент алкоголя: Number,
ферментированный из: String

коктейль: {
name: String,
liquior_id: [],
ingridients: [],
подано: Sring

}

}

Ингредиенты можно сложить в виде ниток ([«водка», «ананасовый сок»])
- - - - - - - - - - - - - - - - -

Необычные полки, которые вы видите в баре? Угадайте, что бы они сказали пьющему, если бы у них был рот ... Ты меня дополняешь !! .. Бинго. Наша база данных также неполна без схемы поилок. Итак, вот как мы их выполняем. Примечание. Если вы не поняли каламбур, посмотрите достаточно фильмов.

пьющий {

id: mongoose.object.id,
name: String,
liquior_id: [],
cocktail_id: [],
daysvisited: Date

}

Крайне важно, чтобы вы включили liquior_id в схему, потому что как бизнес-организация она должна знать, какой пьющий что потребляет?, Чтобы предоставлять более качественные услуги и скидки. Поскольку пьющий потребляет несколько напитков.

Обратите внимание, что, поскольку у алкоголя есть отношения один-ко-многим с пьющим, а у пьющего есть отношения один-ко-многим с алкоголем, у них есть отношения «многие-ко-многим» друг с другом.

— — — — — — — — — — — — —

Думайте о сущностях как об объектах реальной жизни, которые имеют атрибуты и отношения друг с другом. Примите во внимание некоторую диковинную смекалку, и ваши схемы будут готовы раньше, чем вы это узнаете.