2012-11-21 54 views
0

我在我的模型中的許多方法是這樣的:數據庫中的方法或字段?

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

我可以很容易使用@ object.calc得到結果等在其他計算中使用它。

我的問題是最好的辦法是做什麼。保留此信息或將其存儲在我的數據庫中,併爲每個子更新進行上傳。如果計算使用更復雜的函數(平方根等),或者如果我有計算的計算,可能會更快地存儲它,或計算它在我的數據庫請求。

回答

1

取決於你需要什麼。如果它的簡單使用比在飛行中計算它可能是一個可以接受的開支,購買較低的程序員所需的時間(真正的好處!)。

如果您想要進行任何過濾或排序,那麼您可能需要將其存儲在db列中,並使用某種before_save鉤子來更新值。

如果它不是一個非常昂貴的操作,如矩陣乘法,您可能永遠不會注意到性能差異,無論你走到哪裏。

+0

好的,非常感謝。這是我需要知道的。我會保留我的方法,因爲我只在這個項目中做數學:) –