我正在从事一个名为“菜单/食谱管理”的业余项目。
这就是我的实体及其关系的样子。
A Nutrient
具有属性Code
和Value
一个Ingredient
具有集合Nutrients
一个Recipe
具有的收藏,Ingredients
有时也可以具有其他的收藏recipes
一个Meal
有一个收集Recipes
和Ingredients
一个Menu
有集合Meals
关系可以描述为
在其中一个页面中,对于所选菜单,我需要显示根据其成分(膳食,食谱,成分和相应的营养素)计算出的有效营养素信息。
到目前为止,我正在使用SQL Server来存储数据,我正在从C#代码导航链,从菜单的每一餐开始,然后汇总营养值。
我认为这不是一种有效的方法,因为每次请求页面时都会进行此计算,并且成分会偶尔更改。
我在考虑有一个后台服务,该服务维护一个称为MenuNutrients({MenuId, NutrientId, Value}
)的表,并且在任何成分(餐,菜谱,成分)发生变化时,将使用有效营养素填充/更新该表。
我认为GraphDB非常适合此要求,但是我接触NoSQL的机会有限。
我想知道显示给定菜单营养的这种要求的替代解决方案/方法是什么。
希望我对场景的描述清楚。