私が構築したオンラインチケットシステムでは、クライアントの注文に関するリアルタイムの分析レポートを追加する必要があります。分析データ用の非正規化データベーステーブルの使用
重要な注文データは、複数のテーブル(顧客、注文、line_items、package_types、チケット)に分割されます。各表には、クライアントが必要とする可能性があるレポートにとって重要でない追加データが含まれています。
私は、各注文を非正規化レポートテーブルの別個の広告申込情報として記録することを検討しています。私はこれが理にかなっているかどうかを判断しようとしています。
通常、レポート用に実行するクエリは、一度に2つまたは3つのテーブルにまたがって参加する必要があります。各テーブルには適切なインデックスが追加されています。
すべての注文データを、レポートに必要な列のみを含む1つのテーブルにコンパイルすることは意味がありますか?
アプリケーションはRuby on Rails 3上に構築され、DBはPostgreSQLです。
EDIT:これは、ブラウザのデータをできるだけ早くレンダリングすることです。
正規化されたデータからレポートを取得するのが遅いですか? – Mark
私は正確なベンチマークを行っていませんが、要求を開始してから終了するまでの秒数を数えるだけで、ページが正規化されたデータからレンダリングされるのに約20秒以上かかります。それは私が望むより少し長いです。 –