マスターが変更された場合もトランザクションデータの正確さを維持するにはどうしたらよいか悩んでいます。
下記の例で、配達業務を例に質問させて頂きます。
例えば、下記のユーザーマスターがあります。
ユーザーID | ユーザー名 | 住所 |
---|---|---|
1 | 青木 | 東京都新宿区西新宿2丁目8−1 |
2 | 井上 | 東京都千代田区丸の内1丁目 |
次に、配達業務によって下記のようなトランザクションデータが INSERT されます。
伝票番号 | ユーザーID | 配送所要時間実績 |
---|---|---|
A1000 | 1 | 10:00 |
A1001 | 2 | 9:00 |
上記2件のみが存在する時、東京都への配達所要時間の AVG は 9:30 となります。
平均配達時間を求めるクエリは下記の感じです。
SQL
1SELECT 2 AVG(配送所要時間実績) 3FROM 4 トランザクションテーブル 5INNER JOIN 6 ユーザーマスター 7ON 8 トランザクションテーブル.ユーザーID = ユーザーマスター.ユーザーID 9WHERE 10 ユーザーマスター.住所 LIKE '東京都%'
この後、1(青木さん)の住所が東京都外に変更された場合、WHERE 条件から外れて、
配送所要時間の AVG が 10:00 になってしまいます。
このようなケースで、データが不正確になるのを防ぐには、どうするべきでしょうか?

回答1件
あなたの回答
tips
プレビュー