質問: データベース設計に関するコメント/提案 - 倉庫在庫管理 私は現在、複数の倉庫を使用する在庫管理システムを作成しています(サブロケーションを含む)。これが私の最初の大きなプロジェクトですから、いくつかのフィードバックが大好きです。 Let me show you what I have done so far... Link as Im still new here 最初に倉庫を作成し、その倉庫内に場所を作成する必要があります。 ItemType(ItemGroup)を作成して、そのグループのItemを作成することもできます。 在庫を追加することができるアイテムとロケーションがあれば、ストックテーブルにはコンポジットキーがあるので、重複を追加することはできません。私はまたあなたが誤ったItemTypeのItemを入力することができないように制約を追加しました.Warehouse/Locationに同じ制約があります。 私は、在庫、SerialisedItemsとNonSerialisedItemsの各部分のレコードを保持する必要があります。例:シリアル化されていない在庫が数量10で追加された場合、現在、関連する在庫情報とともに在庫ありに設定されているNonSerialisedItemsテーブル(1)内に10行が作成されます。彼らが株式の量を変更すると、行が削除または追加されます(2)。 Warehouseと似ているVanテーブルを使うこともできますが、WarehouseテーブルをWarehouseとVanの2つのテーブルを参照するStorageに変更する必要があると思いますか? *(1) I currently have a TransactionScope on my page adding x number of rows, Is this the best way to handle that? (2) The Quantity amount in the Stock table would have to count the number of rows for that item and then update the Quantity each time stock is added or removed, any problems here?* - **Both Questions Fixed - Only create rows for serialised items.** **その他の問題はありますか?** それは良いか恐ろしい私が知っている場合、まあそれは私がやったことです。 また、落とし穴がある場合は、それを知っていると嬉しいこともあります。 ありがとう **[EDIT]** ありがとう to Neville K I have made a few changes... 新しい改良されたデータベースへのリンク これはもっと意味があるようです!私はそれを昨日ずっと見つめていたと思うよ!
回答: まず、これはかなり解決された問題です。私が知っている最高のリソースは、 "[データモデルのリソースブック]( http://www.univdata.com/Publications/Books/tabid/265/Default.aspx )"シリーズ;そこには在庫管理アプリケーション用の非常に柔軟なモデルがあります。 第二に、あなたのデザインはあまり正規化されておらず、多くの重複に依存しています。推論が何であるかはわかりませんが、通常、「在庫」テーブルには「アイテム」へのリンクがありますが、「アイテムタイプ」にはリンクされません。アイテムがアイテムタイプに属するという事実は、アイテムとアイテムの関係あなたはそれを複製する必要はありません。場所と倉庫についても同じことが言えます。 私が示唆している重要な変更は、単一の「在庫」テーブルではなく、株式取引の概念です。 行に沿った何か ``` TransactionID date itemID locationID quantity 1 1/1/12 1 1 10 2 1/2/12 1 1 -1 3 1/3/12 1 1 20 ``` ある品目の現在の在庫を調べるには、(品目別に)品目を合計します。項目別の現在の在庫を場所別に検索するには、項目、場所ごとに合計(数量)します。 1月1日には、10項目の在庫がありました。 2番目の項目では、1件の項目が削除され、9件の在庫が残りました。 3番目に20の新しいアイテムが入荷し、残りの29アイテムが入荷しました。 この設計により、一般的な要件である経時変化を追跡することができます。トランザクションメタデータ(operatorID、請求書番号など)を作成して監査証跡を提供します。