2015-02-06 6 views
1

저는 PHP, MySQL을 사용하여 재고 시스템을 개발하고 있습니다. 이 시스템은 제품 수량을 줄이거 나 늘리기 위해 판매 모듈을 추가/업데이트/증가시키기위한 구매 모듈을 제품 & 판매 모듈에 있습니다.구매 가격 및 만료일이 다른 제품을 구입하는 가장 좋은 방법은 무엇입니까?

이제 나에게 혼란을 생성하고 무엇을 내 진짜 질문은 것은

  • 가정 해 우리가 양 (20)과 우리가 그것을 구입할 때 A1은 $ 15 살 제품의 가격으로 우리의 재고 제품 A1을해야한다는 것입니다 무슨.
  • 이제이 제품을 더 재고하고자합니다. 예를 들어 PRODUCT A1의 100 개 품목을 추가로 구입하고 싶지만 이제 PRODUCT A1의 새로운 가격은 $ 18입니다.

판매 페이지에서 가격 $ 15 및 가격 $ 18로 구매 한 제품 수를 알기 위해 이러한 항목을 구분하는 가장 좋은 방법/논리는 무엇입니까?

  1. 데이터베이스에 2 개 이상의 수량 열을 저장해야합니까?

  2. 동일한 제품을 데이터베이스에 한 번 이상 저장해야합니까?

현재 나는 제품의 구입 가격이 값 을 추가 한 후 $ 15, $ 18의 평균을 생성하고 있습니다.

답변

1

오, 이런 질문은 당신이 정말로 데이터베이스 디자인의 시작에 있음을 나타냅니다. 그런 초기 단계에서이 복잡성의 문제를 해결해야합니까? 음, 그래, 왜 안돼 ...

귀하의 질문에 대한 답변은 다음과 같습니다. 1. NO !!! 2. 아마도.

첫 번째 아이디어는 단지 바보입니다. 그것에 대해 생각해보십시오. 제품에 대해 세 가지 가격을 얻는다면 세 개의 열이 필요할 것입니다. 그렇게 좋은 아이디어는 아닙니다.

두 번째 옵션은 좋은 해결책 인 것 같습니다. $ 15에 20 개의 항목이 있고 $ 18에 100 개의 항목이 있습니다. 당신은 이것으로 대부분의 일을 할 수 있습니다. 평균 가격은? 음 : (20 * 15 + 100 * 18)/(20 + 100). 쉬운. 그러나 그것은 더 복잡해진다. 고객에게 110 개의 상품을 판매했다면 어떻게 될까요? 두 행을 변경해야하지만 어떻게해야합니까? 첫 번째 행에서 20 항목, 두 번째 행에서 90 항목? 또는 두 번째에서 모두 100, 첫 번째에서 10. 이 문제를 무시할 수 없으며이를 수행하는 방법에 대한 엄격한 규칙을 설정해야합니다. 그리고 시스템에 추가하는 옵션을 늘리면 복잡성 만 계속 유지 될 것입니다. 그것은 효과가있을 것이지만, 그것은 단호하게 될 것입니다.

그러나 언급하지 않은 세 번째 옵션이 있습니다. 재고가있는 모든 품목에 테이블에 고유 한 행을 제공하십시오. 이것은 데이터베이스 공간 낭비처럼 보이지만 잠깐 만요, 단순화합니다. 평균 가격은? 간단합니다. 가격이 포함 된 열의 평균 가격을 계산하면됩니다. 모든 품목이 다른 가격을 가지고 있다고하더라도, 그것은 똑같이 복잡 할 것입니다. 재고에서 항목을 가져 오는 규칙도 간단 할 수 있습니다. FIFO 또는 FILO 시스템 만 사용하면됩니다.

그래서이 마지막 해결책은 분명히 갈 길입니다.

1

'일대 다'관계를 다른 테이블과 비교하면 될까요? 제품 표 (product_id, product_name 등)가 하나 있습니다. 그런 다음 다른 테이블 product_inventory (product_inventory_id, product_id (product.product_id에 외래 키), purchase_price (구매 한 가격), quantity (구매 가격에있는 해당 항목의 수량))를 말합니다.

+0

판매중인 제품에서 수량을 어떻게 제거 할 수 있습니까? –

+0

당신이 팔고있는 가격이 책정 된 제품을 추적하고 있다면, 나는 당신이 적절한 아이 테이블에서 그 값을 뺄 수있을 것이라고 생각합니다. --- update'product_inventory'는'product_id' = (제품의 ID)와'purchase_price' = (당신이 판매하는 제품의 가격) – jflu82