2012-11-21 2 views
0

는이 같은 내 모델에 많은 방법이 있습니다데이터베이스의 메서드 또는 필드?

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

I 수있는 결과를 얻을 등 다른 계산에 사용하기 쉬운 사용 @의 object.calc.

제 질문은 그게 가장 좋은 방법입니다. 이것을 보관하거나 데이터베이스에 저장하고 각 하위 업데이트마다 업로드하십시오. 계산에 더 복잡한 함수 (squareroot 등 ...)를 사용하거나 계산 계산이있는 경우 데이터베이스를 저장하거나 데이터베이스 요청에서 계산하는 것이 더 빠를 수도 있습니다.

답변

1

필요한 항목에 따라 다릅니다. 단순한 사용법이라면 즉시 계산하는 것이 수용 가능한 비용 일 수 있으므로 필요한 프로그래머 시간을 더 줄여야합니다 (실제 이점!).

필터링이나 정렬을 원한다면 db 열에 저장하고 before_save 후크를 사용하여 값을 업데이트 할 수 있습니다.

행렬 곱셈과 같이 매우 비싼 연산이 아니라면 성능 차이를 느끼지 못할 수도 있습니다.

+0

감사합니다. 대단히 감사합니다. 그것이 내가 알아야 할 것입니다. 나는이 프로젝트에서 수학 만하기 때문에 내 방법을 지킬 것이다. :) –

관련 문제