我正在尝试以一种在需要更新一个对象时需要较少计算量和查询量的方式来构造数据库和后端。我正在使用Apollo服务器,Mongoose和MongoDB。
我有
FoodPack MANY---MANY Food
Food MANY---MANY Ingredient
每个对象都有一个kcal
属性。现在,如果我查询allFoodPacks,则需要填充所有食品,并在Foods中填充所有成分,这样我就可以计算出FoodPack的kcal
列。
之所以采用这样的结构,是因为当我更新一个成分的kcal
时,我也不需要更新每个Food和FoodPack字段,因为它们是通过人口查询来计算的。
另一个解决方案是在创建FoodPack对象期间计算FoodPack的kcal
。这样,查询FoodPack及其kcal
列就不需要大量的人口,但是如果FoodPack的Foods中的成分kcal
会发生变化,则我需要更新所有引用该成分的对象。
假设该应用拥有大量用户,哪一种是更好的解决方案?