[PHP-users 1198] 特定のセッションからしか見えないデータベースのデータ

Osamu Shigematsu php-users@php.gr.jp
Fri, 17 Aug 2001 00:18:39 +0900


重松と申します。

適切な名前がわからないのですが、特定のセッションからだけ見える一時的なデータ
ベースのデータというのはどのように実現すればよいのか、全く方法がわからないで
います。

具体的にやりたいことを書くと、契約台帳のようなデータの入力画面を作っているの
ですが、このとき、すでに入力されているデータを重複して入力しないような仕組み
が必要です。

また、かなり複雑な処理なので、データがそろうまでに画面をいくつも遷移していく
ため、その都度データベースに書きに行く処理を行うと、入力を途中でやめてしまっ
た場合にゴミが残るので、一番最後にまとめて書きに行くようにするように、という
ことが要求されています。

現在は、データベースにすでに存在する場合には、そのデータの内容を記録しておき
(実際にデータベースに書き込みに行く時点でデータが他のユーザにより変更されて
いないことを確認するため)、そうでない場合は、phplib の永続変数を使ってフォー
ムにより入力されたデータを保持しています。

しかし、この方法ですと、後からデータを検索する必要がある場合、永続変数 (デー
タベースに登録される予定) に検索結果となりうるデータがある場合もあり、大変煩
雑な処理をしなくてはならなくなります。

そこで、特定のセッションからしか見えないような形でデータベースにデータを登録
できればいいなと思っているのですが、何らかの方法はあるのでしょうか?

とりあえず考えた方法としては、契約台帳を拡張しセッション ID も保持できるよう
なテーブルを用意するという方法ですが、もっとスマートな方法もありそうな気もし
ています。

複数ページをまたがるトランザクションで、かつ、ちゃんと commit されなかったと
きのゴミ処理機能も欲しい、というようなニーズなのですが。

環境は、

    VineLinux 2.0CR
    Apache 1.3.20
    php 4.0.6
    PostgreSQL 7.0.x

です。

アドバイスよろしくお願いいたします。

-- 
Osamu Shigematsu

http://www.ravi.ne.jp/
mailto:shige@ravi.ne.jp