当社では、ニーズに合った在庫管理システムを実装しようとしています。
製品 (サブアセンブリ、最終製品) を生成するためのパーツがいくつかあるtpartため、これはアトミック パーツ、サブアセンブリ、または最終製品である可能性があります。サブアセンブリと最終製品はtbom(部品表) によって定義されます。これは定義側です。
次に、インスタンス側について説明します。追加された各パーツまたは当社を離れるパーツは に保存されttransactionます。10 本のボルトがサプライヤに注文され、当社に配送されたとします。次に、これらのボルトの tpart_id を使用してトランザクション「+10」を追加します。当社で製造された最終製品についても同じ考えで、最終製品を識別するために「+1」トランザクションを作成します。最終製品が顧客に出荷される場合、「-1」トランザクションが追加されます。最終製品は、シリアル番号によって識別されます。
問題は、特定のパーツのインスタンスの詳細な履歴を作成できるようにすることです。一部の部品には欠陥があり、修理のために返送された後、同じ顧客または別の顧客のために会社を離れることができます。可能であれば、修理中に製品のどの部品を交換したかも知りたいです。
私たちの (一時的な、部分的な) データベース モデルは次のようになります。

ttransaction_infoおそらく省略できると思いますttransaction_info_has_tpartが、変更/修理された部品に関する情報が含まれます。
巨大な (行が多い)場合ttransaction、テーブルのクエリと挿入の実行は十分に高速ですか? このテーブルから多くのデータが取得されると思いますが、既にいくつかのインデックスがあります。
私が考えていた別の方法は、tinstance( とは別のttransaction) テーブルと、thistoryインスタンス エントリを参照するテーブルを用意することです。
これは実装する正しい方法ですか?どちらの方向に向かうべきかわからないので、誰かがこれに光を当てることができれば、それは大歓迎です.