アイテムがキューからキューへと絶えず移動するときに、時間の経過に伴うキューの大きさ (レコード数) をクエリできるようにする SQL データ構造を設計するにはどうすればよいでしょうか (グラフ化できるようにするため)。
テーブル:
Queue
--------------------------------------
item_id int
status enum('new','ready','old')
Log
--------------------------------------
item_id int
old_status enum('new','ready','old') --perhaps record new_status instead?--
change_date timestamp
アイテムのステータスが変わるたびに (つまり、新しいキュー)、ログに記録します。
「10:00 に X レコードが 'new' にあり、Y が 'ready' にあるなど」というクエリを作成するにはどうすればよいですか。そして、グラフ化できるように、これを 1 日を通して行います。
事前にタイミングの粒度がわからないため、5 分ごとの合計でテーブルを作成したくありません。
データベース構造を変更し、新しいフィールドを追加して、これを機能させることはまったく問題ありません。