제품 번들이있는 제품의 데이터베이스 설계


13

소매업 용 데이터베이스 시스템을 구축 중입니다. 나는 다음과 같은 몇 가지 테이블을 설정했습니다.

  • 생성물
  • 매수
  • 매상
  • 균형

모두 서로 연결되어 있으며 내 재고 수준을 보여줄 수 있습니다.

내가 겪고있는 문제는 또한 개별 가격과 다른 가격의 제품 번들을 판매한다는 것입니다.
예 : 나는 오렌지를 1 달러에 판매하고 사과는 1.2 달러에 판매합니다. 과일 패키지 1 (오렌지 2 개와 사과 2 개)을 3.8 달러, 패키지 2 (오렌지 4 개와 사과 4 개)를 7 달러에 판매합니다.

이러한 제품 번들에 대한 관계를 작성하는 올바른 방법이 있습니까?

추신 : FileMaker Pro를 사용하여 이것을 생성하고 있습니다.

답변:


16

설명하는 패턴을 종종 " 부품 폭발 "또는 " BOM " 이라고합니다 . 그것은의 일부 그래프 및 트리 데이터 구조의 연구 부. 솔루션의 본질은 주어진 "제품"이 다른 "제품"으로 구성 될 수 있다는 것을 인식하는 것입니다. 디자인은 다음이 네트워크 구조 Product각 제품에 대한 행이 테이블 -이 다른 제품들로 구성 여부, 그리고 여부를 한 후 Product Component다른 제품으로 구성되는 각 제품에 대한 행이 테이블 해당 제품의 구성 요소 인 각 해당 제품. 귀하의 경우, 각 제품에는 가격이 있습니다. 그래서 당신은 이와 같은 것을 가질 것입니다

Product
-----------------------------------
|Name             |Price          |
-----------------------------------
|Orange           |1             |
|Apple            |1.20          |
|Fruit Package    |3.80          |
-----------------------------------

Product Component
----------------------------------------------------------
|Product               |Contains                |Quantity|
----------------------------------------------------------
|Fruit Package         |Orange                  |2       |
|Fruit Package         |Apple                   |2       |
----------------------------------------------------------

이 디자인은 재귀 적 연관성이있는 단일 테이블보다 선호됩니다. 실제로 노드와 링크라는 두 가지 엔티티 유형을 명확하게 구분합니다. 이 경우 제품은 노드이고 제품 구성 요소는 링크입니다.

네트워크 설계는 일반적인 구조이지만 완전히 채워 졌을 때 다양한 깊이의 재귀 구조 인 것처럼 쿼리하면 문제가됩니다. Oracle 및 SQL Server와 같은 산업 수준의 DBMS에는 쿼리를 선언하는 데 도움이되는 특수 언어 요소 (Oracle의 CONNECT BY 및 SQL Server의 재귀 CTE)가 있습니다. 내가 거의 알지 못하는 File Maker Pro를 사용한다고 가정하면 그러한 언어 구조가 없을 수도 있고 네트워크를 통과하기 위해 프로 시저 코드를 작성해야 할 수도 있습니다. 그러나 네트워크의 깊이가 고정되어있는 경우이 문제를 완화 할 수 있습니다. 즉, 모든 제품에 구성 요소가 없거나 한 수준의 구성 요소가있는 것처럼 말입니다. 다음은 데이터베이스 디자인의 네트워크 구조와 관련된 참조입니다.

  1. 데이터베이스 관리에 실질적인 문제 - 파비안 파스칼 . 7 장은 내가 찾은 최고의 가장 이해하기 쉬운 설명을 제공합니다.
  2. Joe Celko의 SQL for Smarties, 2 판의 트리 및 계층 구조 . 이것은 SQL 표준과 관련된 주제에 대한 전체 책입니다.
  3. 기업 모델 패턴 - 데이비드 헤이 . 모든 조직에 공통적 인 패턴에 대한 책 (불행히도 ER 다이어그램은 UML로 제공되지만 극복 할 수 있음)에는 네트워크 구조에 대한 몇 가지 예가 있습니다.
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.