Railsアプリのデータをプルするために必要なレガシーデータベースがあります。
各テーブルは、数字の接尾辞が付いた複数のテーブルに分割されます。各テーブルには、1日の4時間のデータが保持されます。
「widget_status」テーブルがあります。このテーブルは実際にはデータを保持していません。
既存のテーブルは次のとおりです。
- widget_status_0
- widget_status_1
- widget_status_2
- widget_status_3
- widget_status_4
- widget_status_53
各テーブルには4時間のデータが保持されます。
このクエリは機能します:
( SELECT timestamp, some_field FROM widget_status_0
WHERE widget_sn = \@widgetsn and timestamp > $timePeriod )
UNION
( SELECT timestamp, some_field FROM widget_status_1
WHERE widget_sn = \@widgetsn and timestamp > $timePeriod )
UNION
( SELECT timestamp, some_field FROM widget_status_2
WHERE widget_sn = \@widgetsn and timestamp > $timePeriod )
UNION
( SELECT timestamp, some_field FROM widget_status_3
WHERE widget_sn = \@widgetsn and timestamp > $timePeriod )
UNION
( SELECT timestamp, some_field FROM widget_status_4
WHERE widget_sn = \@widgetsn and timestamp > $timePeriod )
UNION
( SELECT timestamp, some_field FROM widget_status_5
WHERE widget_sn = \@widgetsn and timestamp > $timePeriod ) LIMIT 200
または類似のものを使用して6つの基礎となるテーブルをクエリするRailsモデル「ウィジェット」を作成しようとしているunion
ので、残りのコードは6つのテーブルを処理しようとすることを無視します。
このパターンに従う複数のテーブルがあり、6つのテーブルの処理を抽象化できるようにしたいので、残りのコードでは通常どおりfindなどを使用できます。ARELを使用してこれを行う方法を誰かが提案できますか?それとも、それが素晴らしくてシンプルな方法はありますか?