当社では、ニーズに合った在庫管理システムを実装しようとしています。
製品 (サブアセンブリ、最終製品) を生成するためのパーツがいくつかあるtpart
ため、これはアトミック パーツ、サブアセンブリ、または最終製品である可能性があります。サブアセンブリと最終製品はtbom
(部品表) によって定義されます。これは定義側です。
次に、インスタンス側について説明します。追加された各パーツまたは当社を離れるパーツは に保存されttransaction
ます。10 本のボルトがサプライヤに注文され、当社に配送されたとします。次に、これらのボルトの tpart_id を使用してトランザクション「+10」を追加します。当社で製造された最終製品についても同じ考えで、最終製品を識別するために「+1」トランザクションを作成します。最終製品が顧客に出荷される場合、「-1」トランザクションが追加されます。最終製品は、シリアル番号によって識別されます。
問題は、特定のパーツのインスタンスの詳細な履歴を作成できるようにすることです。一部の部品には欠陥があり、修理のために返送された後、同じ顧客または別の顧客のために会社を離れることができます。可能であれば、修理中に製品のどの部品を交換したかも知りたいです。
私たちの (一時的な、部分的な) データベース モデルは次のようになります。
ttransaction_info
おそらく省略できると思いますttransaction_info_has_tpart
が、変更/修理された部品に関する情報が含まれます。
巨大な (行が多い)場合ttransaction
、テーブルのクエリと挿入の実行は十分に高速ですか? このテーブルから多くのデータが取得されると思いますが、既にいくつかのインデックスがあります。
私が考えていた別の方法は、tinstance
( とは別のttransaction
) テーブルと、thistory
インスタンス エントリを参照するテーブルを用意することです。
これは実装する正しい方法ですか?どちらの方向に向かうべきかわからないので、誰かがこれに光を当てることができれば、それは大歓迎です.