Я працюю над хобі-проектом під назвою Menu / Recipe Management.
Так виглядають мої сутності та їх відносини.
А 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 обмежений.
Хочу знати, які існують альтернативні рішення / підходи до цієї вимоги відображення поживних речовин даного меню.
Сподіваюся, мій опис сценарію зрозумілий.