0

建設デポ(建設資材が保管されている場所)のデータベースを作成しようとしています。保存されているすべての材料(の製品)、販売されたすべての製品、および残っているすべての製品を知る必要があります。私はこのようにすることを考えています:


Products--> Deliver <--Depot (many to many) - here I see all the products in.

Depot--> Sell <--Products (many to many) - here I see what I have sold.

And what is left: To make a difference between "Deliver" and "Sell".

ここに何か正しいものはありますか?別のアイデアがありますか?ご協力ありがとうございました。

4

1 に答える 1

2

在庫追跡システムを処理する別の方法は、複式簿記システムのようにアプローチすることです。Deliverこれにより、テーブルとテーブルを組み合わせてSellインベントリMovementテーブルにすることができます。各ムーブメントは2つのレコードで構成され、1つは正の量で、もう1つは負の量です。

在庫システムをこのように扱うことの利点は、集計クエリを使用して、ある時点での任意のデポでの任意の製品の在庫位置(手持ち在庫)を簡単に取得できることです。


編集:テーブル構造..。

PRODUCT
-ID (PK)
-Description
-...

DEPOT
-ID (PK)
-Name
-Location
-...

MOVEMENT
-ID (PK)
-DateTime
-ProductID (FK)
-DepotID (FK)
-Quantity /* Positive=Increase, Negative=Decrease */
-OffsettingMovementID (FK) /* Points to the other half of the entry */
于 2012-05-25T11:03:38.233 に答える