数据库中的方法或字段?

时间:2012-11-21 07:51:47

标签: ruby-on-rails-3

我的模型中有很多方法,如下所示:

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

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

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

1 个答案:

答案 0 :(得分:1)

取决于你需要它。如果它的简单用法比在运行中计算它可能是一个可接受的费用,以便购买更少的程序员所需的时间(真正的好处!)。

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

如果它不是一个非常昂贵的操作,比如矩阵乘法,你可能永远不会注意到性能差异,无论你走哪条路。