1。すべてのボトルを個々の InventoryUnit オブジェクトとしてデータベースに保存する必要がありますか?
個別に販売できる場合は、そうです。それ以外の場合は、ケース/ボックスで追跡してください。
二。在庫を減らすためのベスト プラクティスは何ですか? ボトルを販売する場合、InventoryUnit を破棄する必要がありますか? または、「販売済み」または「在庫あり」のステータス列を追加する必要がありますか?
場所と移動の概念を使用します (移動はそれ自体のエンティティである必要があります)。たとえば、OpenERP はこれに似た「仮想ロケーション」を使用します。
ボトルスマッシュ?在庫の場所から「破損した」場所に移動します
ボトルが行方不明になりましたか? 在庫から「エーテル」の場所に移動し
ます ランダムなボトルを見つけましたか? 「イーサ」からインベントリ
に移す ボトルを売った?在庫から「販売済み」に移動
する ボトルを購入しましたか? 購入済みから在庫に移動する
三。パフォーマンスが心配です。Postgres は数十万の InventoryUnit オブジェクトを処理できますか?
Postgres は何千億ものオブジェクトを処理できます。きちんとノーマライズ。小さなデータ型を使用します。インデックスを使用します。
その他の注意事項:
- 何かを販売して返品され、在庫に戻すことができます
- 何かを購入することはできますが、正しくないため、売り手に送り返します。
- 所有していないものを販売することができます (委託販売、またはまだ在庫にない)
- 現在販売されていない商品が在庫にある場合があります。
会計在庫の場合、船積み FOB ステータスに基づいて、担当するインバウンドおよびアウトバウンド出荷の商品もカウントする必要があります。
何かを作ったり組み立てたりする場合は、未加工品 (DIY のワイン製造用のもの?) と仕掛品、発注コストなどを数える必要があります。
預託品は、会計在庫にはカウントされません。