• ベストアンサー

表の切り替えについて

お尋ねします。 富士通のDBMSであるSymfoWAREを使用して業務構築を検討しておりますが、実現方式に不明な点がありますので質問させていただきます。 (処理概要) 1.定義情報のまったく同じ、表Aと表Bが存在する。 2.表Aにユーザアプリが登録・照会処理を行っている間  に、表Bに対してバッチ処理でデータの入れ替えを行  う。 3.バッチ処理完了後は、表Bをユーザーアプリに表Bを参 照させる。 (質問) 1.ユーザーアプリに判定処理を入れる事無く表Aを参照し  ていたのを表Bに参照させる事は可能でしょうか? 2.仮に不可能である場合、類似の実現方法はありますでし  ょうか? 3.DBMSがオラクルであれば実現できますでしょう   か? 以上、お手数をおかけ致しますがよろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • msystem
  • ベストアンサー率42% (79/186)
回答No.1

SymfoWareは、知らないのですが、Oracleでは、ビューを使用すればできると思います。 まず、Aに対するビューを作成し、アプリケーションを作成したビューを参照するようにする。2.の作業終了後、作成したビューをBを参照するように変更する。 これで一応できると思います。 (シノニムを使ってもできるかもしれない) 参考になればと思います

kiyoto
質問者

お礼

この方法で、検討していく事に致しました。 大変助かりました。

kiyoto
質問者

補足

回答どうも有難うございました。大変参考になりました。 SymfoWareも基本的にはoracleと同じようなので、この考え方は利用できると思います。参考にした考えをbourbonさんの回答に補足書き込みさせていただきました。 問題等ありましたら、またレスお願いします。

その他の回答 (1)

  • bourbon
  • ベストアンサー率46% (18/39)
回答No.2

msystemさんの方法はなかなか可能性があるお答えだと思います。 ただ、その場合ユーザがAに対して行っていた変更をどのように Bに反映させるのかが問題になるのではないでしょうか? Aの変更情報をBに反映させなくて良いのならば、参照先をBにすれば できますけど、表Aと表Bは整合性を保つ必要はないのでしょうか?

kiyoto
質問者

お礼

bourbonさんのご指摘のとおり、Aに対して行っていた変更内容はBに反映させる必要があります。そこで、下記の方法で検討する事に致しました。 ご指摘有難うございました。 (処理内容) 1.表Bに対してバッチ処理でデータの入れ替え終了後、表Aに対してのユーザーからの更新権限を剥奪する。 2.表Aから変更データを抽出し、表Bに対して反映させる。 3.表Aのビューを削除し、表Bのビューで作成しなおす。 4.表Aにユーザーからの更新権限を付与する。

kiyoto
質問者

補足

bourbonさんのご指摘のとおり、Aに対して行っていた変更内容はBに反映させる必要があります。そこで、下記の方法を考えてみました。 (処理内容) 1.表Bに対してバッチ処理でデータの入れ替え終了後、表Aに対してのユーザーからの更新権限を剥奪する。 2.表Aから変更データを抽出し、表Bに対して反映させる。 3.表Aのビューを削除し、表Bのビューで作成しなおす。 4.表Aにユーザーからの更新権限を付与する。 (疑問) 1.更新権限を表Aから剥奪した場合、ビューからも剥奪されますか? 2.表Aのビューから、表Bへのビューへ切り替える間に参照を行うユーザーアプリは、排他がかかりますか? 以上、ご意見をお願いします。