Je travaille sur un projet de loisir appelé Gestion des menus / recettes.
Voilà à quoi ressemblent mes entités et leurs relations.
A Nutrienta des propriétés CodeetValue
An Ingredientpossède une collection deNutrients
A Recipepossède une collection de Ingredientset peut parfois avoir une collection d'autresrecipes
A Meala une collection de RecipesetIngredients
A Menupossède une collection deMeals
Les relations peuvent être décrites comme

Dans l'une des pages, pour un menu sélectionné, je dois afficher les informations sur les nutriments efficaces calculées en fonction de ses constituants (repas, recettes, ingrédients et nutriments correspondants).
À partir de maintenant, j'utilise SQL Server pour stocker les données et je navigue dans la chaîne à partir de mon code C #, en commençant à chaque repas du menu, puis en agrégeant les valeurs nutritives.
Je pense que ce n'est pas un moyen efficace car ce calcul est fait à chaque fois que la page est demandée et les constituants changent de temps en temps.
Je pensais à un service d'arrière-plan qui maintient une table appelée MenuNutrients ( {MenuId, NutrientId, Value}) et remplira / mettra à jour cette table avec les nutriments efficaces lorsque l'un des composants (repas, recette, ingrédient) change.
Je pense qu'un GraphDB serait bien adapté à cette exigence, mais mon exposition à NoSQL est limitée.
Je veux savoir quelles sont les solutions / approches alternatives à cette exigence d'affichage des nutriments d'un menu donné.
J'espère que ma description du scénario est claire.