メニュー/レシピ管理という趣味のプロジェクトに取り組んでいます。
これは私の実体とそれらの関係がどのように見えるかです。
AにNutrientはプロパティがCodeあり、Value
のIngredientコレクションを持っていますNutrients
A RecipeにはコレクションがIngredientsあり、時々他のコレクションを持つことができますrecipes
Aは、Mealのコレクションを持っているRecipesし、Ingredients
A MenuのコレクションがありますMeals
関係は次のように表すことができます

いずれかのページで、選択したメニューについて、その構成要素(食事、レシピ、成分、および対応する栄養素)に基づいて計算された有効栄養素情報を表示する必要があります。
現在、SQL Serverを使用してデータを格納しています。メニューの各食事から始めて栄養素の値を集計して、C#コードからチェーンを移動しています。
この計算はページがリクエストされ、構成要素が時々変更されるたびに行われるため、これは効率的な方法ではないと思います。
MenuNutrients({MenuId, NutrientId, Value})と呼ばれるテーブルを維持し、コンポーネント(食事、レシピ、成分)のいずれかが変更されたときに、このテーブルに有効な栄養素を追加/更新するバックグラウンドサービスがあることを考えていました。
GraphDBはこの要件に適していると思いますが、NoSQLへの私の露出は限られています。
特定のメニューの栄養素を表示するというこの要件に対する代替の解決策/アプローチは何ですか?
シナリオの説明が明確であることを願っています。