Sto lavorando a un progetto per hobby chiamato Menu / Gestione ricette.
Ecco come sono le mie entità e le loro relazioni.
A Nutrient
ha proprietà Code
e Value
Un Ingredient
ha una collezione di Nutrients
Un Recipe
ha una collezione di Ingredients
e occasionalmente può avere una collezione di altro recipes
A Meal
ha una raccolta di Recipes
e Ingredients
Un Menu
ha una collezione di Meals
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 nutrienti corrispondenti).
A partire da ora sto utilizzando SQL Server per archiviare i dati e sto navigando la catena dal mio codice C #, partendo da ogni pasto del menu e quindi aggregando i valori dei nutrienti.
Penso che questo non sia un modo efficace poiché questo calcolo viene eseguito ogni volta che viene richiesta la pagina e i componenti cambiano occasionalmente.
Stavo pensando di avere un servizio in background che mantiene una tabella denominata MenuNutrients ( {MenuId, NutrientId, Value}
) e popolerà / aggiornerà questa tabella con i nutrienti efficaci quando uno qualsiasi dei componenti (Pasto, Ricetta, Ingrediente) cambia.
Ritengo che un GraphDB sia adatto per 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.