Estou trabalhando em um projeto de hobby chamado Gerenciamento de Menu / Receita.
É assim que minhas entidades e suas relações se parecem.
A Nutrient
tem propriedades Code
eValue
Um Ingredient
tem uma coleção deNutrients
A Recipe
tem uma coleção de Ingredients
e ocasionalmente pode ter uma coleção de outrosrecipes
A Meal
tem uma coleção de Recipes
eIngredients
A Menu
tem uma coleção deMeals
As relações podem ser descritas como
Em uma das páginas, para um menu selecionado, preciso exibir as informações de nutrientes efetivas calculadas com base em seus constituintes (refeições, receitas, ingredientes e os nutrientes correspondentes).
No momento, estou usando o SQL Server para armazenar os dados e estou navegando na cadeia a partir do meu código C #, começando em cada refeição do menu e agregando os valores dos nutrientes.
Acho que não é uma maneira eficiente, pois esse cálculo está sendo feito toda vez que a página é solicitada e os constituintes mudam ocasionalmente.
Eu estava pensando em ter um serviço em segundo plano que mantém uma tabela chamada MenuNutrients ( {MenuId, NutrientId, Value}
) e preencherá / atualizará esta tabela com os nutrientes efetivos quando qualquer componente (Refeição, Receita, Ingrediente) for alterado.
Eu sinto que um GraphDB seria um bom ajuste para esse requisito, mas minha exposição ao NoSQL é limitada.
Quero saber quais são as soluções / abordagens alternativas para esse requisito de exibir os nutrientes de um determinado menu.
Espero que minha descrição do cenário seja clara.