2012-06-20 5 views
1

내 프로그램이 어떻게 설정 되었는가? 상당히 기본입니다. (핵심 데이터를 사용하는 Objective-c)판매/재고 프로그램 구현에 어떻게 접근해야합니까?

  • 고객 엔티티에는 많은 송장이있을 수 있습니다.
  • 인보이스에는 많은 항목이있을 수 있습니다.

예를 들어 재고량이 15 개인 항목을 만들 때 항목을 15 회 만듭니다. 이는 어떤 품목이 어떤 송장에 속하는지 또는 송장에 속하지 않는지를 연관시킬 수 있도록하기 위함입니다. 이렇게하면 개별 항목을 편집 할 수 있습니다 (손상된 경우). 비록 이것이 최선의 구현인지 확실하지 않습니다.

이제는 이전 구현에서 많은 수량의 항목이 하나 밖에 없었습니다. 나는 "수량"속성을 가졌다. 그러나 어떤 아이템을 팔거나, 누구에게 판매했는지 등을 어떻게 연관시키는 지에 대해서는 제한적이었습니다. 두 번째 엔티티 인 "ItemSold"를 만들었지 만 불필요한 것으로 판단하고 특정 아이템을 반환하려고 할 때 문제가 발생합니다. 새 상품을 추가하십시오 (판매 시점의 장소).

내 항목을 표시하려고 할 때 분명히 동일한 항목이 내 표에 15 개 표시되는 것을 원하지 않습니다. 수량이 포함 된 열이 있어야합니다.

나는 일반적으로 매번 매회마다 하나씩 항목을 추가해야하거나 여러 수량을 나타내는 항목 하나를 추가해야한다는 것을 알고 싶다. 그리고 그것이 하나의 항목 일 경우, 판매 된 품목과 판매 된 품목을 구별하는 방법.

답변

1

글쎄, 귀하의 경우에 대한 정답은 하나도 없습니다. 코드 복잡성, 성능 상충 관계, 모델 복잡성 ... 그래서 소금과 함께 다음을 가져 가십시오.

Customer 
- name: string 
- orders ->> Order 

Order 
- reference: string // order reference number, unique 
- date: date // date of the order 
- shippingDate: date // shipping date, null = not yet shipped 
- orderItem ->> OrderItem 
- customer -> Customer 

OrderItem // a line on the invoice, roughly 
- quantity: integer 
- discount: double // percentage 
- item -> Item 
- order -> Order 

Item 
- name: string 
- weight: double 
- price: decimal 
- orderItem ->> OrderItem 

송장 부분 용입니다. 재고는 OrderItem에로 거의 같은 처리 할 수 ​​있습니다 : 역의 관계로

InventoryItem // a line in the inventory book 
- quantity: integer 
- state: string // new, returned, damaged... 
- items ->> Item 

이 항목에 추가 :

- inventoryItems ->> InventoryItem 

비즈니스 로직이 재고가 최신인지 확인해야합니다 것을 손상된 품목은 주문할 수 없습니다.

물론 완전히 다른 방식으로 수행 할 수도 있지만 필요에 맞게 정확하고 적절할 수 있습니다.

+0

방금 ​​내 머리를 랩핑하려고합니다. 기본적으로 Item과 일대 다 관계를 가질 수있는 OrderItem과 InventoryItem을 도입했습니다. 즉, 하나의 Item을 가졌지 만 OrderItem에 추가 될 때 OrderItem에 추가 될 때 수량을 처리합니까? 나는 이것을 좋아하고 그것과 함께 갈 것이라고 생각한다. – Rail24

+0

OrderItem 링크 주문 및 항목은 몇 가지 특성이 추가 된 고전적인 양방향 대 다수 관계입니다. 주.에는 필요한만큼의 OrderItem이 있으며, 항목은 많은 OrderItem에 의해 링크 될 수 있습니다. –