0

我的模型中有很多这样的方法:

def calc
    self.c = self.child.a * self.child.b
end

我可以很容易地使用@object.calc 来获得结果并在其他计算中使用它。

我的问题是最好的方法是什么。保留它或将其存储在我的数据库中并为每个子更新上传它。如果计算使用更复杂的函数(平方根等......)或者如果我有计算计算,那么存储它可能会更快,或者在我的数据库请求中计算它。

4

1 回答 1

1

取决于你需要它做什么。如果它是简单的使用而不是动态计算它可能是可以接受的费用,购买所需的程序员时间更少(真正的好处!)。

如果您想做任何类型的过滤或排序,那么您可能希望将其存储在 db 列中并使用某种before_save钩子来更新值。

如果这不是一个非常昂贵的操作,例如矩阵乘法,那么无论您采用哪种方式,您都可能永远不会注意到性能差异。

于 2012-11-21T07:59:21.873 回答