私は SQL 初心者であることを述べることから始めたいので、この問題を解決しようとするときのワークフローや考え方について、提案やコメントをいただければ幸いです。
私が行っているのは、いくつかのアプリケーションに関する使用統計をいくつかのカテゴリ (必ずしもすべてのカテゴリがすべてのアプリケーションに適用されるわけではありません) で収集し、データベースに保存することです。
それを行うためにいくつかのテーブルを設定し、次にそのように構造化されたすべてをリンクする 1 つのテーブルを設定しました (以降: Dtable ):
(column name - details)
UserID - foreign key to another table which stores users data
ApplicationID - foreign key to another table which stores applications data
CategoryID - foreign key to another table which holds a list of different categories
Value - the actual data
各アプリケーションはデータを収集し、ストアド プロシージャを使用してデータベースに送信します。データの量は実際の使用状況 (常にすべてのカテゴリを送信するわけではありません) に基づいて異なる可能性があるため、アプリケーションごとに、CategoryIDとValueのリストを含む DataTable としてデータを送信することを考えていたので、個々のカテゴリごとの手順 ( Ptable )。
CategoryIDに従って、 Dtableの各レコードをPtableの正しい値に更新する必要がありますが、 UserIDおよびApplicationIDによってもフィルター処理されます。UserIDとApplicationIDは、ストアド プロシージャへの他の 2 つのパラメータとして与えられます。Ptableには、 CategoryID / Valueレコードのリストのみが含まれます。
今、私はカーソルについて読んだ(テーブルパラメータの各レコードについて、データベーステーブルの関連データを設定する)が、コンセンサスは「絶対に避ける」ようだ。
Ptableのさまざまなレコードに基づいて、テーブルを更新するにはどうすればよいでしょうか。
PS
テーブルは、将来的にカテゴリやアプリケーションを追加する際の俊敏性とスケーラビリティを維持するために、このように構成されています。それを行うためのより良い方法があれば、私は知ってうれしいです.