哪一个更好-在填充对象时计算深度较大的对象字段,或者在保存对象时计算字段并在必要时进行更新?

我正在尝试以一种在需要更新一个对象时需要较少计算量和查询量的方式来构造数据库和后端。我正在使用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会发生变化,则我需要更新所有引用该成分的对象。

假设该应用拥有大量用户,哪一种是更好的解决方案?

newer1106 回答:哪一个更好-在填充对象时计算深度较大的对象字段,或者在保存对象时计算字段并在必要时进行更新?

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/2582660.html

大家都在问