0

当社では、ニーズに合った在庫管理システムを実装しようとしています。

製品 (サブアセンブリ、最終製品) を生成するためのパーツがいくつかあるtpartため、これはアトミック パーツ、サブアセンブリ、または最終製品である可能性があります。サブアセンブリと最終製品はtbom(部品表) によって定義されます。これは定義側です。

次に、インスタンス側について説明します。追加された各パーツまたは当社を離れるパーツは に保存されttransactionます。10 本のボルトがサプライヤに注文され、当社に配送されたとします。次に、これらのボルトの tpart_id を使用してトランザクション「+10」を追加します。当社で製造された最終製品についても同じ考えで、最終製品を識別するために「+1」トランザクションを作成します。最終製品が顧客に出荷される場合、「-1」トランザクションが追加されます。最終製品は、シリアル番号によって識別されます。

問題は、特定のパーツのインスタンスの詳細な履歴を作成できるようにすることです。一部の部品には欠陥があり、修理のために返送された後、同じ顧客または別の顧客のために会社を離れることができます。可能であれば、修理中に製品のどの部品を交換したかも知りたいです。

私たちの (一時的な、部分的な) データベース モデルは次のようになります。

ここに画像の説明を入力

ttransaction_infoおそらく省略できると思いますttransaction_info_has_tpartが、変更/修理された部品に関する情報が含まれます。

巨大な (行が多い)場合ttransaction、テーブルのクエリと挿入の実行は十分に高速ですか? このテーブルから多くのデータが取得されると思いますが、既にいくつかのインデックスがあります。

私が考えていた別の方法は、tinstance( とは別のttransaction) テーブルと、thistoryインスタンス エントリを参照するテーブルを用意することです。

これは実装する正しい方法ですか?どちらの方向に向かうべきかわからないので、誰かがこれに光を当てることができれば、それは大歓迎です.

4

1 に答える 1

2

このアプリケーションに真剣に取り組んでいる場合は、Hay の Enterprise Model Patterns などのデータ モデル パターンの本を読むことを強くお勧めします。アマゾンで高評価。サファリで安い。Silverston の Data Model Resource Book の第 2 巻では、MRP について説明しています。

定義とインスタンスについて心配する必要があるという正しい軌道に乗っています。

一般に、定義・仕様を製品(または商品)と呼び、インスタンスを資産と呼びます。製品は、他の製品から「構成」されています。

アセットにはいくつかの種類があり、ディスクリート アセット (車のようにシリアル番号が付いている)、インベントリ アセット (ボルトのように、数は必要だが個々のボルトは気にしない)、およびロット アセットがあります。

ここでの「トランザクション」はあいまいすぎる用語です。より具体的な用語として「配達」をお勧めします。抽象型は「Movement」であり、心配する点がいくつかあります。

出荷は発生するはずのものであり、配達は実際に発生したものです。

(インバウンド) ベンダー出荷/配送
(アウトバウンド) ベンダー返品出荷/配送
(アウトバウンド) 顧客出荷/配送
(インバウンド) 顧客返品出荷/配送
社内出荷/配送

製品ごとに数百の動きがあっても、インデックスが適切に作成されていれば問題ありません。

于 2013-09-10T17:38:28.130 に答える