私はデータベースの設計に不慣れで、データベースを設計しようとしているときに問題に直面しました。これが私のシステムです。3 つの異なるソフトウェア (SW_A、SW_B、SW_C) と 500 ~ 600 人のユーザーがいます。各ユーザーは、任意のソフトウェアを使用して、何らかの作業を行うことができます。各作品はデータベースに約送信されます。1分間に6回。(ユーザーとソフトウェアに対してランダムに) データベースに、ソフトウェアに関連するすべてのユーザー アクションをアーカイブ用に保持し、これらのソフトウェアに関連するすべてのユーザーのインスタント アクションを追跡したいと考えています。(ソフトウェアごとに異なるユーザーの最新のアクションのみ)
だから私はsthを設計しました。そのように:
表: SW_X_DATA_ARCHIVE
列 :
- ユーザーID
- データ_日付
- SW_A_ActionID
表: SW_X_INSTANT_DATA
列:
- ユーザーID
- データ_日付
- SW_X_ActionID
新しいデータが来ると、その UserID が存在する場合は INSTANT_DATA テーブルの関連行を更新し、存在しない場合は UserID とデータを含む新しい行を挿入します。次に、同じデータを DATA_ARCHIVE テーブルに挿入します。
問題は次のとおりです。この種の作業のためのより良い方法はありますか? おそらくビュー? (具体化されたビューについて読んだことがありますが、ここでの使用方法がわかりません。) ありがとう