Ich arbeite an einem Hobbyprojekt namens Menü- / Rezeptverwaltung.
So sehen meine Wesenheiten und ihre Beziehungen aus.
A Nutrienthat Eigenschaften CodeundValue
An Ingredienthat eine Sammlung vonNutrients
A Recipehat eine Sammlung von Ingredientsund kann gelegentlich eine Sammlung von anderen habenrecipes
A Mealhat eine Sammlung von RecipesundIngredients
A Menuhat eine Sammlung vonMeals
Die Beziehungen können dargestellt werden als

Auf einer der Seiten muss ich für ein ausgewähltes Menü die Informationen zu den wirksamen Nährstoffen anzeigen, die anhand der Bestandteile (Mahlzeiten, Rezepte, Zutaten und die entsprechenden Nährstoffe) berechnet wurden.
Ab sofort verwende ich SQL Server zum Speichern der Daten und navigiere die Kette von meinem C # -Code aus, beginnend mit jeder Mahlzeit des Menüs und aggregiere dann die Nährstoffwerte.
Ich denke, dies ist kein effizienter Weg, da diese Berechnung jedes Mal durchgeführt wird, wenn die Seite angefordert wird und sich die Bestandteile gelegentlich ändern.
Ich habe darüber nachgedacht, einen Hintergrunddienst zu haben, der eine Tabelle mit dem Namen MenuNutrients ( {MenuId, NutrientId, Value}) verwaltet und diese Tabelle mit den wirksamen Nährstoffen füllt / aktualisiert, wenn sich eine der Komponenten (Mahlzeit, Rezept, Zutat) ändert.
Ich bin der Meinung, dass eine GraphDB gut zu dieser Anforderung passt, aber meine Exposition gegenüber NoSQL ist begrenzt.
Ich möchte wissen, was die alternativen Lösungen / Ansätze für diese Anforderung sind, die Nährstoffe eines bestimmten Menüs anzuzeigen.
Hoffe, meine Beschreibung des Szenarios ist klar.