- ベストアンサー
過去データに対するデータベースのクエリの実行の仕方
こんにちは。アべです。 データの処理でリレーショナルデータベースを使用しようとしております。 そこで、台帳(例えば顧客台帳)をマスタ登録して使用するのですが、 下記のことがクエリでは出来ずに困っています。 やり方のヒントでもよろしいので教えていただけないでしょうか? ・過去に戻って、トランザクション処理を再実行する際に過去の その時点の台帳情報を引っ張りたい。 (テーブルに時間指定でクエリを投げる方法がわからない。) ・その台帳の情報を確認したい。 (単純に台帳の過去を知りたい。 トリガで更新処理のログを残す手間なやり方しか思い浮かばない。) 本をみてもリレーショナルデータベースに時間軸の概念がないような 気がしております。 (一応調べて見て、スナップショットデータベースがあり、これだと ある特定の時点しか取れず、しかも事前に用意しておかなければならず、 いまいち今回のパターンだと使えないと考えています。) 環境 SQL Server 2008 Service Pack 1 宜しくお願い致します。
- みんなの回答 (3)
- 専門家の回答
お礼
norayuniさん、 早速の回答を有難うございます。 RDBにやはり時間軸を持たせる概念はないのですね。 残念です。私も自前での実装で試みます。 データベース自体が現実世界に合わせる際にどうしても タイムラグがあるので、多少の過去に戻って過去の処理を かけたかったのですが、ここは自前で実装することにします。 補足 1)やりたかったのは、例えば お店で営業中に棚卸をして刻々と変る在庫数とある時点の 在庫数で帳簿(論理)在庫の数を調整するなどを実施したかったです。 販売管理だと24時間対応や日中棚卸などはコスト削減で当たり前なので また、障害により、トランザクション処理を再投入する際に 台帳がトランザクション発生時点でひけないと2度目の処理結果が変る。 (でも、台帳の更新も一連のトランザクション群に入れてしまえば 全てリランできるともいえる。) 2)自前の時間軸の対応について 過去を索引する方法は、 1.トリガで情報を残し、その情報をアクセスします。 2.一連のトランザクション群を逆算処理してその時点の情報を採取する があるかと思います。なんとなく1がシンプルかと思っています。 以上 有難うございました。