Я работаю над хобби-проектом под названием 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 ограничено.
Я хочу знать, каковы альтернативные решения / подходы к этому требованию отображения питательных веществ данного меню.
Надеюсь, мое описание сценария понятно.