2011-07-13 6 views
0

私は以下を実装する最良の方法を探しています。複雑なMySQLクエリ/レポートの結果を保存する

私は、会社のパフォーマンスを分析し、MySQLのクエリを持っている、というように売上、収益、費用とを出力し、基本的には、最終的な売上総利益及び当期純利益の数字を出力します。それはうまくいっているし、マネージャはそれを実行する任意の日付範囲を選択することができ、その範囲のすべてを出力する - したがって、彼らは今日、昨日、今週、先月、または3月17日数ヶ月前に...あなたはポイントを得る。

レポートに使用される数字のいくつかは可変であり、そして、そのようなので、上のオーバーヘッドとなどの外部コストを、変動伴うときしかし問題はそこです。私はユーザーがこれらのコストとオーバーヘッドを設定テーブルに指定することを許可し、パフォーマンスクエリはこれらを使用して数値を計算します。しかし、これらの変動指数は,を表していますので、今日のオーバーヘッドが相殺されて不正確になる過去のXヶ月/年の企業パフォーマンスを見たい場合は、関連性はありません。

私はいくつかの解決策を考えました。

  1. 私は、管理者がオーバーヘッドを適用する日付範囲を設定できるようにすることができます。たとえば、2011年6月の日次オーバーヘッドは2000ポンドでしたが、2011年7月のオーバーヘッドは2250ポンドでした。
  2. または、パフォーマンスレポート/クエリを別のテーブルに保存することもできます。これは明らかに実行された時点から可変図がロックされています。これはcrontabで自動化することもでき、たぶん毎晩実行しただけです。

あなたはどちらの道を勧めますか?

答えて

2

私があなただったら、最初のオプション(1)に行き、特定の日付の遅延オーバーヘッドを格納するテーブルを作成します。これは、あなたがテーブル上にある純粋な「処女」のデータに対して任意の時点で任意の種類のクエリを実行するためにより柔軟になります。あなたはおそらくクエリと異なる日付範囲で、必要なレポートのすべての複雑さを計算することはできませんので

一方2番目のオプションは、私にはその実現可能とは思われません。

関連する問題