2013-05-25 2 views
0

데이터베이스를 디자인하려고하는데 내 디자인이 전혀 의미가 있는지 궁금합니다.Copy Shop 데이터베이스 디자인

주문 및 가격 작업을 추적하기 위해 작은 내부 복사 상점에 대한 데이터베이스를 설계하려고합니다. 관계형 데이터베이스를 만드는 것이이 정보를 저장하는 좋은 방법이 될 것이라고 생각했습니다. 일반 주문의 몇 가지 예는 다음과 같습니다

  • 주문 # 1 : 일반 20 파운드의 8.5x11 용지에 7 B & W 페이지와 3 컬러 페이지, 스테이플의 100 개 세트,
  • 주문 # 2 : 한 24 " X 36 "포스터 적층과 내가 작업을 시작 디자인이이었다

폼 코어에 장착 : database design

그래서 예를 들어, 내가 가진 :

  • 제품 : {복사 주문, 포스터}
  • 속성 : {B & W 페이지, 컬러 페이지 수, 세트, ​​스테이플, 용지 크기, 용지 종류, 포스터 크기}
  • 속성 옵션 : {스테이플 상단 왼쪽 ..., 8.5x11, ..., 일반 20lb, ..., 24 "x 36", ...}

지금까지는 이것이 합리적이라고 생각합니다. 내가 알 수없는 것은 가격 프로파일을 추가하는 방법입니다. 문제는 속성 옵션의 가격이 다른 속성 옵션에 따라 달라지며 모든 경우에서 다릅니다. 위의 예를 사용하여 다음

  • 의 가격 주문 번호 1 : [일반 8.5x11 용지 B & W 인쇄물의 가격 [B & W 페이지 번호] + 일반 8.5x11 컬러 인쇄 [가격 X 종이] x [컬러 페이지 수] + [세트 수] x [스테이플 가격]
  • 주문 가격 2 : [24x36 포스터의 가격은 포말 중심에 적층 적층] x [포스터의 양]

또한 여러 유형의 고객에 대해 서로 다른 가격을 책정 했으므로 여러 가격 프로필을 계획했습니다.

관계형 데이터베이스에서이를 수행하는 합리적인 방법이 있습니까? 아니면 다른 방법으로해야합니까? 기존 데이터베이스는 (나로 몇 년 전에) 제대로 설계되지 않았으며 대부분의 특성이 필드 이름으로 하드 코드되었으며 각 제품에 대해 별도의 테이블이 있습니다. 예를 들어, paper_type은 copy_orders 테이블의 필드이고 poster_size는 poster_orders 테이블의 필드입니다. 그리고 코드를 사용하여 가격을 계산합니다. 나는 더 잘 융통성있게 뭔가를 디자인하고 싶다.

나는 (분명히) 관계형 데이터베이스에 대한 전문가가 아니므로, 어떤 조언을 주시면 매우 감사하겠습니다! 감사!

+0

빠른 응답을 위해 엔티티 관계 테이블을 제공하는 것이 좋습니다. – diegoperini

+0

첨부 된 이미지가 충분하지 않습니까? 업로드 할 항목이 무엇인지 모르겠습니다. 다이어그램을 업로드하는 더 좋은 방법이 있습니까? – Nate

+0

ERT 테이블에는 1 : 1, 1 : 외래 키와 같은 공유 열과 마찬가지로 많은 관계가 있습니다. 당신은 귀하의 계획에서 하나를 내보내려고 할 수 있습니다. – diegoperini

답변

0

평소와 같이 대답은 "다릅니다"입니다. 첫 번째 예를 촬영 : 일반 8.5X11 용지와 스테이플에 일반 8.5X11 용지, 컬러 인쇄에 인쇄 승 & B :

The price of Order #1: [price of B&W prints on plain 8.5x11 paper]x[number of B&W pages] + [price of color prints on plain 8.5x11 paper]x[number of color pages] + [number of sets]x[price of staples] 

당신은 세 부분 (또는 항목 또는 제품 또는 SKU는)이 필요합니다. 이 부품들 각각에는 가격이 있습니다 (가격 이력을 유지하고 부품 당 현재 가격을 확인하는 것과 관련된 문제가 있지만 지금은 무시할 것입니다).그런 다음 순서 # 1의 가격이 두 번째 예를 들어

amount of part1 * price of part1 + 
amount of part2 * price of part2 + 
amount of part3 * price of part3 

이되고, 당신은라는 부분을 정의해야 '24x36 포스터 적층 및 폼 코어에 장착 된'다음 가격을 정의하는 것입니다.

속성 비용에 백분율을 할당 할 수있는 경우 (예 : ab & w 인쇄물의 칼라 인쇄 비용이 25 % 이상 증가한 경우 [요즘은 그 반대입니다]), '일반 용지 인쇄' 8.5x11 용지 '로 설정하고 가격을 지정하십시오. 속성 표에서 '추가 비용 비율'필드를 추가하고 '색상 인쇄'속성에 25 값 (또는 사물 관리 방법에 따라 0.25 또는 1.25)을 삽입합니다.

고객의 경우, 고객을 대우하는 한 가지 방법은 각 고객이 가격 목록에서받는 일정한 할인을 정의하는 것입니다. 고객이 부품 당 다른 할인을받는다면 고객 ID, 부품 ID 및 가격의 세 가지 필드가있는 테이블을 정의 할 수밖에 없습니다.

비록 이것이 복잡해 보이지만, 결국 그것은 최선의 방법입니다.

+0

고마워요. 그것은 복잡해 보입니다. 그래서 저는이 프로젝트에 전념 할 시간이 있고 작업을 간소화 할 때까지이 프로젝트를 보류하기로했습니다. – Nate