Я работаю над хобби-проектом под названием Menu / Recipe Management.
Так выглядят мои сущности и их отношения.
А Nutrientимеет свойства CodeиValue
Ан Ingredientимеет коллекциюNutrients
A Recipeимеет коллекцию Ingredientsи иногда может иметь коллекцию другихrecipes
А Mealимеет коллекцию RecipesиIngredients
А Menuимеет коллекциюMeals
Отношения могут быть изображены как

На одной из страниц для выбранного меню мне нужно отобразить информацию об эффективных питательных веществах, рассчитанную на основе ее составляющих (блюда, рецепты, ингредиенты и соответствующие питательные вещества).
На данный момент я использую SQL Server для хранения данных, и я перемещаюсь по цепочке из своего кода C #, начиная с каждого приема меню и затем собирая значения питательных веществ.
Я думаю, что это неэффективный способ, так как этот расчет выполняется каждый раз, когда запрашивается страница, и составляющие время от времени меняются.
Я думал о том, чтобы иметь фоновый сервис, который поддерживает таблицу с именем MenuNutrients ( {MenuId, NutrientId, Value}) и будет заполнять / обновлять эту таблицу эффективными питательными веществами при изменении любого компонента (еда, рецепт, ингредиент).
Я чувствую, что GraphDB будет хорошо подходить для этого требования, но мое знакомство с NoSQL ограничено.
Я хочу знать, каковы альтернативные решения / подходы к этому требованию отображения питательных веществ данного меню.
Надеюсь, мое описание сценария понятно.