[PHP-users 14348] Re: データベースのデータを保持するクラスの作成について

shima tetuo php-users@php.gr.jp
2003年 3月 27日 (木) 08:49:09 JST


> 私の場合は、PostgreSQL を使ってるのですが、pg_fetch_object
> でオブジェクト型でデータを取得した後、セッション情報に保存
> しています。
> 
> 1つのWEBアプリケーションが動いてる間のみですが、数日の間
> 保持したい場合はシリアライズした情報をそのままデータベース
> にまるごと保存したりもします。 他にもまとめて読み込んだ
> データがセッション情報に含まれているので読み込み回数が1回
> で済みます。
> 
> セッション情報に格納する変数はセッション情報格納用の専用
> のクラスを作成し、そのクラスの中に登録する情報を格納します。
> 
> class Session {
>   var $aData ;
>   function Session() { $this->aData = array() ; }
>   function add( $stKey, $mData ) { $this->aData[$stKey] = $mData }
>   function del( $stKey ) { unset( $this->aData[$stKey] ; }
>   function get( $stKey ) { return $this->aData[$stKey] ; }
>   function exist( $stKey ) { return isset( $this->aData[$stKey] ) ; }
> }
> 

これだと、接続が極端に少なくなるのでその面でのコストは断然少なくなります
ね。ですが、これだとSessionに登録してしまうのである端末からの影響は、そ
の端末のみにしか反映されなくなると思うのですが、どういう用途でこの手法を
使いますか?

1ユーザーの情報(他に開示しない)を操作するのであればこれで十分ですが、
マスタデータ的なものだとこの手法はうまくいかないのではないかと...
(この辺りは最初に話に出していなかったので仕方ないですが。)

マスタ的なデータ(複数ユーザーに渡って操作されるデータ)であれば、他にど
のようなクラスの組み立て方があるかみなさん(黒木さんを含め)で話してみま
せんか?






PHP-users メーリングリストの案内