2017-02-21 1 views
0

db 질문에 도움이 될지 궁금합니다. 레일 5와 MySQL을 사용하고 있습니다.레일 5 MySQL : 두 개의 다른 열 합계 테이블 열

3 개의 정수 열이있는 테이블을 만들고 싶습니다. 1 열과 2 열은 사용자가 채우고 3 열은 c1xc2의 결과이며 정수로 저장해야합니다. 그러한 테이블을 만드는 방법에 대해 어떻게 생각합니까? 마지막으로 계산 된 열이 없어도 행복하게 테이블을 만들 수 있습니다. 가장 좋은 방법은 없습니다.

나는 어쩌면 내가 전혀 마지막 열을 필요로하지 않는, 오히려 계산이 필요한 때마다 내가있는 경우 장점은 무엇입니까 (C1)를 참조 ERB 및 C2

를 사용하여 결과를 렌더링 할 수 있다는 것을 고려 않았다

테이블에 제품을 보관하는 것/

많은 감사.

답변

1

이있는 경우는 ("혜택")을 그 주제에 알려줄 특정 아무것도하지 않으면 테이블

에서 제품을 저장하는 이점은 무엇이다 - 아무도 오히려 없습니다.

나는 어쩌면 내가 전혀 마지막 열을 필요로하지 않는다는 것을 고려 않았다

아니라 계산은 내가 C1과 C2를 참조 ERB를 사용하여 결과 렌더링 할 수 필요한 때마다

정확히, 당신은하지 않습니다. 에서

SELECT col1, col2, (col1 + col2) AS col3 FROM yourtable WHERE col1 = <something>; 

합계 비용 (제안 된 방아쇠 솔루션과는 달리) 레코드 조회/비교와 비교 비용이 들지 않습니다.

+0

나는 이것이 광범위하고 적절하다고 생각합니다. mysql 또는 erb를 수행하는 방법, 그러나 필요에 따라 계산하는 것은 잠재적으로 oft 변수의 합을 저장하는 것보다 낫습니다. –

0

사용자가 트리거 할 수 있습니다. 업데이트하기 전에처럼.

Set New.SumValue = New.ValueOne + New.ValueTwo 

그러나 열 중 하나가 NULL 일 수 있으므로주의하십시오. 여기서 IFNULL을 사용해야합니다.

+0

괜찮은 것 같아요.하지만 1과 2에 대한 사용자 입력 결과로 제품이 자동으로 저장되는 테이블을 만드는 방법은 무엇입니까? –