2011-12-20 3 views
2

어떤 데이터웨어 하우스 유형 디자인이 가장 좋을지 결정하려고합니다. Google 검색을 사용하여 기간별로 다른 상품의 과거 가격 평균을 찾는 데 사용됩니다. 예를 들어, 이번 달, 3m, 6m 및 1 년 전에 Stock A의 평균 가격은 얼마입니까? 문제는 내가 사용할 수있는 항목 이름이 없으며 항목에 대한 설명 필드가 있습니다.기록 집계를위한 데이터베이스 디자인

이것은 동일한 항목이 각각 다른 설명으로 20 번 나열 될 수 있으므로 항목을보기로 집계 할 수 없음을 의미하므로 설명 필드에 전체 텍스트 검색을 수행하고 가격을 파악해야합니다. 삽입 한 날짜는 3 개월 전인 <입니다. 그런 다음 그 평균을 찾으십시오.

  MAIN 
---------------------------- 
ID | Description | Price | Date 

또는 여러 테이블 :

DESCRIPTION 
------------------ 
ID | Description | 


    PRICE 
--------- 
ID | PRICE 

그리고 그냥 내가 원하는 데이터를 얻기 위해 가입

그래서 내 가장 좋은 건처럼 하나 개의 테이블에서 모든 것을하는 것입니다. 데이터베이스에는 수백만 개의 행이 포함됩니다. 아이템의 실제 이름을 얻을 수있는 방법이 있다면 미리 데이터를 집계 할 수 있지만 그 방법은 아닙니다. 나는 어떤 조언을 주셔서 감사합니다!

답변

0

옵션 2라고 말하고 싶습니다. "설명"표에 최상위 수준의 세부 정보를 유지하십시오. 그리고 "가격"표의 과거 데이터 (일시적인 값을 캡처하기 위해 날짜 필드가 추가되었지만)

+0

mysql을 사용하고 있기 때문에 이것이 내 최선의 방법 일 수 있습니다. 설명 테이블에서 전체 텍스트 검색을위한 myisam을 실행할 수있게하고, 다른 모든 것은 innodb가 될 수 있습니다. – mscard02

0

옵션 2는 더 많은 유연성을 제공 할 것입니다. 천천히 변화하는 차원을 수용하기 위해 각 테이블에 날짜를 추가하는 것을 제안합니다. 특정 항목에 대한 설명 및 기타 속성은 시간이 지남에 따라 변경 될 수 있습니다.

벽돌 및 박격포 소매 업체의 경우 특정 위치 근처의 고객 경쟁 및 인구 통계 학적 구성으로 인해 위치가 다르게 가격이 책정 될 가능성이 매우 높으므로 매장 ID가 포함될 가능성이 큽니다.

DESCRIPTION 
--------------------------------------------------- 
ID | Description | Effective Date | Expiration Date 


    PRICE 
----------------------------------------------------------- 
ID | Location ID | Price | Effective Date | Expiration Date