Завершение модели данных
Мы почти закончили ремоделировать базу данных. Мы преобразовали девять таблиц реляционных баз данных в четыре контейнера для базы данных NoSQL. Контейнер клиентов, содержащий данные о клиентах и заказы на продажу. Контейнер Product содержит ваши продукты и теги продуктов "многие ко многим". Два других — контейнеры productTag и productCategory.
Одна последняя оптимизация
Можно выполнить одну последнюю оптимизацию. Заметили ли вы, что контейнеры productCategory и productTag имеют одинаковый ключ секции? Как можно предположить, поскольку они используют один и тот же ключ секции, мы также можем разместить обе эти сущности в одном контейнере и присвоить ему более универсальное имя, например productMeta.
Теперь мы можем использовать такие запросы, вроде рассмотренных ранее, чтобы получить все теги продукта и категории продуктов. Этот шаблон подходит для любого типа основных или справочных данных, которые необходимо хранить. Так как все эти данные находятся в одном контейнере, чтобы поддерживать целостность данных во всей базе данных, можно использовать только один узел для канала изменений, а не по одному узлу для каждого отдельного контейнера. Любое изменение, которое поступает в канал изменений для любой сущности, можно затем направить в соответствующую функцию путем проверки свойства типа при считывании новых данных с помощью канала изменений. Это обеспечивает более эффективное использование вычислительных ресурсов для канала изменений, а также эффективное хранение данных.
Наш окончательный дизайн
Вот наш окончательный дизайн. После объединения категорий продуктов и тегов мы перешли от девяти реляционных таблиц всего к трем контейнерам. Каждый из них оптимизирован для эффективного обслуживания приложения электронной коммерции и масштабирования до любого необходимого размера.