2012-11-23 5 views
1

데이터를 저장하거나 코드에서 직접 데이터를 생성하기 위해 데이터베이스에서 필드를 만드는 것이 가장 중요한 부분이었습니다. 예를 들어, 데이터베이스의 두 개의 다른 열에서 생성 된 특정 값을 알아야합니다. Column1-Column2 = Column3. 그래서 여기에 문제가 코드에서 해당 데이터를 생성하는 것입니다 또는 내가 Column3 만들고 데이터를 채우는 동안 DB를 채우고 나중에 검색해야합니다. 필자의 경우 데이터는 2 자리 정수 또는 단일 문자열, 기본적으로 작은 데이터입니다.데이터베이스 필드를 생성하여 코드를 생성하여 데이터를 생성합니다.

저는 최신 mysql을 사용하고 있습니다. 프로그래밍 언어는 mysqli 라이브러리가있는 php입니다. 또한이 웹 사이트는 너무 많은 트래픽을 가져서는 안되며 db의 크기는 최대 200k 행입니다.

답변

2

이 유형의 속성 (열)은 derived attribute입니다. 당신은 을 증가시킬 것이므로 그것들을 데이터베이스에두면 안됩니다. column1column2을 입력하면을 가져 오는 동안 계산하십시오. 이 같은 예를 들어,

`Column1` - `Column2` as `Column3` 

위해 당신은 모든 시간을 추가 파생 속성을 가지는 view을 만드는 방법 쿼리를 귀찮게 해달라고합니다.

계산할 때 CPU 사용량이 많은 경우 캐시 사용을 고려해야합니다. 이 캐시가 무효화되는 방법과시기를 구현해야합니다.

+0

하는 것을 내가 내 대답은 조금 편집 덕분에 – vman

+0

을 의심 있었는지. 다시 검토하십시오. –

+0

흥미 롭습니다. 그러나 명확하게하기 위해 코드에서 수행 할 것이라고 생각합니다. 계산은 본질적으로 사소한 것입니다. – vman

0

이것은 리소스가 부족한 계산 방법과 수행 빈도에 따라 다릅니다. 귀하의 경우 그것은 매우 간단하므로 별도의 열에 차이를 저장하는 것은 과도 할 것입니다. 이 같은 SQL 쿼리에서 계산을 수행 할 수 있습니다

SELECT col1, col2, col1-col2 AS col3...

관련 문제