6

私は酒を販売しています。だから私はボトルの在庫があります。これまではproductとline_itemを参照する "InventoryUnit"モデルがあります。在庫管理:データベース内の販売在庫単位はどのように扱いますか?

  1. 個々のボトルを個別のInventoryUnitオブジェクトとしてデータベースに保存する必要がありますか?

  2. 在庫を減らすにはどうすればよいですか?ボトルを販売している場合、InventoryUnitを破棄しますか?または「在庫」または「在庫」できるステータス列を追加するだけですか?

  3. 私はパフォーマンスが心配です、Postgresは何十万個ものInventoryUnitオブジェクトを扱うことができますか?

本当にありがとうございます。申し訳ありませんが、私はフロントエンドの男ですので、私は実際にデータベースモデリングを吸っています...

+0

データベース内の「ボトル」とは何ですか?どのようにボトルを区別し、どのような情報を追跡する必要がありますか? –

+1

ニールの方法をお勧めします。私は "トランザクション"と呼ばれるモデルを作成し、あるモデルから別のモデルへの動きを記録します。あなたは100本のボトルを持っているとしましょう。その後、取得したすべての製品または販売した製品のレコードを取得することができます。あなたが考えているシステムは、Quickbooksの仕組みと非常によく似ています。あなたが会計を理解するならば、これはかなり簡単になるはずです。 –

答えて

0

ああ、それは答えが難しいです。右の方法ではのはありませんが、使い方によってはさまざまなモデルが影響を受けます。

少量で高度に情報集約型の在庫(飛行機や部品など)を追跡する場合は、すべてのアイテムにエントリを定義することができます。 (あなたのケースがそうであるように)アイデンティティに近くない同一の製品の集合体をモデリングするなら、私は在庫状況に焦点を当てるつもりです。アイテムのライフサイクルをどれだけ深く追跡したいかによって決まります。

「このクラッカーのインスタンスを追跡するのは価値があるのですか?または、パレットが現在の在庫にどれだけ影響しているかを追跡できますか?ガソリンスタンドは燃料1リットルあたりのエントリを作成しますか?

3

最低限のレベルで在庫を追跡する必要があります。言い換えれば、棚から1つのユニットを選ぶときに、正しいことを得るために知る必要がある最も具体的な情報は何か。

あなたの例では、私はちょうど「ボトルを手に入れよう」と言うことも、ウォッカの代わりにワインを戻すこともできませんでした。 Cirocが欲しいときにAbsolutを取り戻すかもしれないので、私は「ウォッカのボトルを手に入れよう」と言うこともできません。最後に、私は1.5Lのサイズを望んでいたときに1Lのサイズを取り戻すかもしれないので、「Cirocのボトルを手に入れよう」と言うことはできません。

私は「1.5L Cirocのボトムケースのフロントローの左側から3番目のボトルを手に入れよう」と言うことができましたが、Cirocの1.5Lボトルがすべて同じであるため、それはばかげていました。 (Flavor's aside;))。

スイートスポットは在庫保管単位(SKU)になります。ありがたいことに、世界中のほとんどすべての企業がすでにあなたのためにこれを解決しています。あなたのSKUとしてバーコードの下のUPC番号を使用してください。

これに基づき、あなたのモデルは何かのようになります...

InventoryOnHand 
- id:int 
- product_id:int 
- quantity:int 

Product 
- id:int 
- sku:string 
- name:string 

物事が株式の内外に行くようにあなたは、その後InventoryOnHand量が増加し、減少するであろう。

7

1つ。個々のボトルを個々のInventoryUnitオブジェクトとしてデータベースに保存する必要がありますか?

個別に販売できる場合は、はい、そうでない場合はケース/ボックスで追跡します。

2つ。私の在庫を減らすためのベストプラクティスは何ですか?ボトルを販売している場合、InventoryUnitを破棄しますか?または、「販売」または「在庫あり」できる ステータス列を追加するだけですか?

位置と移動の概念を使用します(移動は独自のエンティティである必要があります)。例えば、OpenERPはこれに似た "仮想ロケーション"を使います。

ボトルスマッシュ?在庫場所から「破損した」場所に移動
ボトルが欠落しましたか?在庫から「エーテル」の場所に移動
ランダムなボトルを見つけましたか? 「エーテル」から在庫に移動
瓶を販売しましたか?在庫から「売り」に移動
瓶を買った?購入から在庫に移動

3つ。私はパフォーマンスが心配です、Postgresは何十万個ものInventoryUnitオブジェクトを扱うことができますか?

Postgresは数千億ものオブジェクトを処理できます。正常に正常化する。小さなデータ型を使用する。インデックスを使用する。

心に留めておくべきいくつかの他の事:

  • あなたはそう、何かを売ることができる、それが返されると、あなたは
  • インベントリに戻ってそれを置くあなたが何かを買うことができるが、それは適切ではありません
  • あなたは在庫がありませんが、現在販売されていないものがあります。

また、会計上の在庫については、オンボードのFOBステータスに基づいて、責任を負うインバウンドおよびアウトバウンドの出荷で商品を数える必要があります。

あなたが

委託品は、会計上のインベントリにカウントされないなど、生品(DIYワイン造りのものを?)カウントする必要があり、発注コストだけでなく、何かを組み立て/作る場合は進行中で動作します。

関連する問題