2011-10-03 4 views
1

좋아요, 제 설명으로 내 문제를 이해하기 바랍니다.여러 품목 종류의 재고 관리 시스템 모델링

우리는 결정된 원료를 사용하는 제품을 생산하는 회사가 있지만,이 회사는 또한이 원료를 판매하지만 회사에 들어서 자마자이 재료의 집중도를 확인하기 위해 분석을 진행해야합니다. 승인?

그래서 우리는 재료의 일부 종류, 원료, 그 재료의 생산 결과물, 그 재료의 용기 (병, 상자, 봉투)를 판매 할 수 있습니다.

이러한 모든 종류의 항목에는 이와 같이 다른 정보가 있습니다 (예 : 재료의 유효 기간이 만료 됨, 컨테이너의 최대 금액 지원). 각 유형에 대해 여러 개의 테이블로 분할했습니다.

그런 다음 설명, 최대 용량 등의 각 종류에 대한 정적 정보가있는 일부 테이블에서 재고 관리가 분리되었습니다. 그러나 구입, 판매 및 판매 시점에 품목을 찾을 수있는 올바른 방법을 찾을 수 없습니다. 다른 제품으로 변형되거나 판매용으로 제공 될 수도 있습니다.

는 말은 :

나는 재고 처리하는 제품

raw material (id, description, maximum dosis) 
manufactured material (id, description,) 

그리고 테이블 (말할 수) 두 개의 테이블이있는 경우

Inventory (id, analysis_report_id, weight, item_id (referenced by which of those 2 tables?) 

가 나는를 사용해야합니다 필드를 입력하고 채워진 필드를 찾은 다음 인벤토리의 항목을 검색 할 때 모든 제품 종류 테이블에 가입하십시오.

(내가 BTW PostgreSQL을을 사용하고 있습니다) 이해 흐리게 스틸 사진으로 만약 내가 깊이 더 갈 수 있습니다.

내 질문을 재 형식화해야합니까 아니면 정말 복잡한 질문입니까? 내가 제대로 이해했다면

답변

1

, 나는 4 개 테이블이 점을 고려 거라고 :

Item (ItemID, Description, Type) 
RawMaterialItem(RawMaterialItemID, maximumDosis, ItemID) 

Inventory (id, analysis_report_id, weight, item_id) 

항목 테이블 효과적으로 RawMaterial 및 ManufacturedMaterial 공유하는 모든 일반 필드를 포함; Material 테이블에 고유 한 열은 Item 테이블에 대한 외래 키와 함께 자체 테이블에 저장됩니다. Item 테이블의 Type 열은 항목 유형의 표시기입니다. 예에서 RawMaterial 또는 ManufacturedMaterial입니다.

주어진 항목에 대한 모든 데이터를 얻으려면 유형 열을보고 관련 테이블에 가입하십시오. 이것은 꽤 못생긴 것입니다. 대안으로 Craig Larman의 저서 "Applying UML and Patterns"를보십시오.

이렇게하면 인벤토리 테이블이 단 하나의 테이블 - 항목으로 연결됩니다.

+0

하지만 각 '재질'테이블의 세부 정보를보고 싶다면 어떻게해야합니까? 어떤 테이블에 가입해야하는지 어떻게 알 수 있습니까? 예를 들어 Item (50, 'alcohol')은 RawMaterialItem (35, 2ml, 50)에 조인되지만 Item (51, 'alcohol bottles')은 ContainerItem (70, 1un, 51)에 조인합니다. 그런 다음 항목 1 개에 대한 정보를 나열하기 위해 모든 테이블을 조인 한 다음 해당 항목 ID가있는 테이블을 찾아야합니다. – Djonatan

+0

수정 된 답변입니다. –

+0

"주어진 항목에 대한 모든 데이터를 얻으려면 유형 열을보고 관련 테이블에 가입하십시오.이 방법은 매우 못 생깁니다 - Craig Larman의"UML 및 패턴 적용 "책을 참조하십시오." 네, 그게 못 생겼어 ... 그게 내가 피 하려던 것이 었어.하지만 다른 옵션은 없다는 것 ... – Djonatan