>source

재고품 공급업체에 대해 아래와 같은 간단한 ERD 다이어그램이 있습니다.

이 ERD를 하나의 사실 테이블과 몇 개의 차원 테이블이 있는 스타 스키마로 바꾸는 가장 좋은 방법은 무엇입니까?

구체적으로 말하면 고객 테이블과 창고 테이블이 동일한 locationID를 공유하기 때문에 위치 테이블에 문제가 있습니다.

사실 테이블에 locationID를 추가하고 위치에 대한 차원 테이블을 생성해야 합니까? 하지만 이렇게 하면 두 가지 유형의 locationID를 팩트 테이블에 추가할 필요가 없을 것입니다. 하나는 고객용이고 다른 하나는 창고용입니다. 둘 다 반드시 동일한 locationID를 가질 필요는 없기 때문입니다.

또는 위치 테이블의 속성을 고객 및 창고의 차원 테이블에 개별적으로 추가해야 합니까?

왜 별 스키마를 사용합니까? 당신은 무엇을 얻을 것인가?

bbaird2021-10-14 06:45:11

귀하의 인보이스 항목이 의미가 없습니다. 이 모델에 따르면 단일 품목에 대해서만 송장을 발행할 수 있으며 한 단위에 대해서만(또는 전체 재고에 대한 것입니까?) 또한 송장은 변경할 수 있습니다. 재고가 변경되면 과거의 모든 송장도 변경됩니다. 당신의 회계사는 행복하지 않을 것입니다.

mustaccio2021-10-14 06:45:11

@mustaccio 제 실수를 지적해주셔서 감사합니다. 인보이스 테이블을 업데이트했습니다. 송장 테이블 itemQty에 대한 속성을 놓쳤습니다. 품목 수량은 해당 송장에서 판매된 품목의 양을 추적해야 합니다. 또한 인벤토리가 변경되면 좋은 점을 언급했는데 제안 사항이 있습니까?

Trelaquix2021-10-14 06:45:11

@bbaird 이 ERD를 스타 스키마로 변환하려고 합니다. 데이터 웨어하우스에 대해 확장성을 높이기 위해 데이터를 비정규화하고 싶기 때문입니다. 위의 데이터베이스는 ERD를 스타 스키마로 변환하는 방법을 더 잘 이해할 수 있도록 단순화되었습니다.

Trelaquix2021-10-14 06:45:11

"데이터를 비정규화하고 싶기 때문에 스타 스키마" --스타 스키마는 비정규화를 의미하지 않습니다.

mustaccio2021-10-14 06:45:11
  • 이전 postgresql : Postgres 간헐적 연결/쿼리 오류 진단
  • 다음 SQL Server 2014 -디스크 공간 문제