3

내가 판매 응용 프로그램을 만드는 오전 여기에 :)가 오버 설계 데이터베이스 설계

명에서 도움의 제품과 판매 감사의 예비 설계가 나는 그러나 나는 아마도 과잉이다 아닌 경우 확신 엔지니어링 또는 내 디자인을 약간 단순화 할 수 있습니다.

다음은 내 제품 주문 스키마입니다.

일부 비즈니스 규칙 : 고객이 하나 이상의 계약

  • 계약은 하나 개 이상의 제품
  • 제품이 하나 이상의 대리점
  • (A)에 의해 공급 될 수를 포함 할 수 있습니다 주문할 수 있습니다

    1. 제품은 하나 이상의 네트워크에서 공급할 수 있습니다.
    2. 배포자가 하나 이상의 네트워크에서 제품을 판매 할 수 있습니다.
    3. A pro
      1. 이 내 디자인이

        을 과도하게 설계되었습니다 : 가격은 유통

      enter image description here

      내 질문에 따라 달라질 수 있습니다 덕트? 그것은 그것의 링크 테이블의 사용과 제품의 3 개 버전의 창조와 매우 복잡한 것 같다

      • 네트워크 제품
      • 유통 제품
      • 내가 시행하려고

      제품 예를 들어 배급업자가 네트워크를 판매하지 않는 경우 데이터베이스의 비즈니스 규칙은 네트워크 a의 제품을 사용할 수 없어야합니다. 제품을 배포자에게 할당하는 것만으로는 충분하지 않습니다. 모든 제품을 네트워크에서 가져온 다음 배포자 1이 네트워크를 판매하지만 B의 제품을 볼 수없는 쿼리는 어려운 규칙이며 사람들이 제품을 선택하지 못하도록하고 싶지 않습니까?

    4. 내가 스키마를 조정할 수 없다고 가정하면 NetworkPRoduct와 DistributorNetwork는 Distributor 제품에서 사용되는 복합 기본 키가 가장 좋으며 networkprodutid와 같은 대용 키를 사용하면 어떻게 될까요? 이는 디스트리뷰터가 특정 네트워크만을 판매한다는 사실을 여전히 나타 냅니까?

    감사

  • +0

    귀하의 질문과 관련이 없지만 Distributor1 테이블에는 두 개의 전화 번호 열이 있습니다. 다른 테이블로 정규화 할 가치가 있을까요? 나는 누군가가 세 번째/네번째 등등을 요구할 때 어떤 일이 일어날 지 궁금합니다. – Bridge

    +0

    감사합니다. 더 이상 필요하지 않으므로 모든 연락처 세부 정보를 제거 할 것입니다. –

    +0

    "데이터베이스에서 비즈니스 규칙을 시행하려고합니다 ..."샘플 데이터를 삽입하면 스키마에서 이러한 모든 규칙을 적용 했습니까? –

    답변

    1

    설계로는 overengineered 때 그들이 당신의 비즈니스 규칙을 충족하는 데 필요한 점 이상으로 복잡 비용. 아무도 당신보다 더 나은 결정을 내릴 수 없습니다. 개인적으로는 생각지도 못했지만 생각합니다.

    문제는 계약서 서명시 제품을 구입할 배포자를 알지 못할 수도 있다는 점입니다. 당신의 스키마가 당신이 이것을 알고 있다고 가정하는 것은 나에게 (나는 이것을 오해 할 수도있다.) 보인다. 따라서 유통 업체를위한 추가 제품 표와 진정한 가격 매트릭스가 필요할 것입니다.

    현재 디자인이 지나치게 복잡하다고 생각하면 we 모델을 어떻게 모델링할지, 그리고 앞으로 어떻게 모델링 할지를 보여 주어야합니다.

    +0

    안녕하세요, 답장을 보내 주셔서 감사합니다. 우리는 계약서에 서명하기 전에 배포자가 누구인지 알고 있습니다. –