Для вашего примера - Клиент, Продукт и Заказ. Вы можете оформить следующим образом (модель документа):
Продукт
{
"_id" : "p1",
"name": "camera"
},
{
"_id" : "p2",
"name": "mobile"
}
Заказчик
{
"_id" : "c1",
"name": "sunil",
"orders": [
{
"_id" : "999",
"date": "05/05/2018",
"product_id": "p1"
},
{
"_id" : "888",
"date": "02/09/2018",
"product_id": "p2"
}
]
}
Сверху можно разглядеть, что:
В модели документа есть две таблицы по сравнению с тремя в РСУБД.
Детали продукта хранятся в таблице Product. Заказы встраиваются в
таблица клиентов (так что нет соединений) вместе с данными клиента.
В реляционном дизайне сущность и ее связь с другими сущностями будут описаны, а запросы и индексы будут разработаны позже. В СУБД нормализация используется для устранения избыточных данных и повышения эффективности их хранения. Запросы на объединение могут использоваться для сбора данных. Но соединения являются виновником производительности и масштаба.
На стороне NoSQL вы получаете такие возможности, как БД, поддерживающие разбиение таблицы, а также вам необходимо определить, как используются данные (запросы), чтобы дать значимый первичный индекс для запроса. Строковый документ или столбцы должны быть предназначены для группировки данных, которые будут считываться вместе. С NoSQL вы нормализуете свою схему, чтобы хранить в одной строке или документе то, что было бы несколькими таблицами с индексами в реляционном мире. Группировка данных по диапазону клавиш обеспечивает быстрое чтение и запись по ключу строки.