Je travaille sur un projet de loisir appelé Gestion des menus / recettes.
Voilà à quoi ressemblent mes entités et leurs relations.
A Nutrient
a des propriétés Code
etValue
An Ingredient
possède une collection deNutrients
A Recipe
possède une collection de Ingredients
et peut parfois avoir une collection d'autresrecipes
A Meal
a une collection de Recipes
etIngredients
A Menu
possè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.