Sto lavorando a un progetto di hobby chiamato Menu / Gestione ricette.
Ecco come appaiono le mie entità e le loro relazioni.
A Nutrient
ha proprietà Code
eValue
An Ingredient
ha una collezione diNutrients
A Recipe
ha una raccolta di Ingredients
e occasionalmente può avere una raccolta di altrirecipes
A Meal
ha una collezione di Recipes
eIngredients
A Menu
ha una collezione diMeals
Le relazioni possono essere rappresentate come
In una delle pagine, per un menu selezionato ho bisogno di visualizzare le informazioni sui nutrienti efficaci calcolate in base ai suoi componenti (pasti, ricette, ingredienti e i corrispondenti nutrienti).
A partire da ora sto usando SQL Server per memorizzare i dati e sto navigando nella catena dal mio codice C #, a partire da ogni pasto del menu e quindi aggregando i valori dei nutrienti.
Penso che questo non sia un modo efficace in quanto questo calcolo viene eseguito ogni volta che viene richiesta la pagina e i componenti cambiano di tanto in tanto.
Stavo pensando di avere un servizio in background che mantiene una tabella chiamata MenuNutrients ( {MenuId, NutrientId, Value}
) e popolerà / aggiornerà questa tabella con i nutrienti efficaci quando uno qualsiasi dei componenti (Pasto, Ricetta, Ingrediente) cambia.
Sento che un GraphDB sarebbe adatto a questo requisito, ma la mia esposizione a NoSQL è limitata.
Voglio sapere quali sono le soluzioni / approcci alternativi a questo requisito di visualizzazione dei nutrienti di un determinato menu.
Spero che la mia descrizione dello scenario sia chiara.