[pgsql-jp: 34290] Re: テーブルに登録された関数の実行について

Noriyuki TORII torii @ nn.iij4u.or.jp
2004年 11月 18日 (木) 19:32:08 JST


 鳥居です.

->From: Akinori FUJII <showten24 @ yahoo.co.jp>
 ->Subject: [pgsql-jp: 34289] Re: テーブルに登録された関数の実行について
  ->Date: Thu, 18 Nov 2004 16:51:37 +0900 (JST)
   ->Message-ID: <20041118075137.7197.qmail @ web1008.mail.yahoo.co.jp>

藤井さん> 鳥居さん、こんにちは。
藤井さん> 藤井と申します。

 こんにちは.

藤井さん> かなり難しい問題に取り組んでおられるようですが、そもそもこの問題に至った経緯
藤井さん> などを教えていただければ、他に解決策をご提示できるかもしれません。
藤井さん> 
藤井さん> 他に解決策があるのかないのかについてはご興味ないですか?


 このようなことを考えることになった理由ですが, だいたい以下のような
ところです.

1) 今回実装しようとしているシステムでは, データベース上で保持するレコードに
  ある種の寿命のようなものが存在する.

2) 各レコードは幾つかの種別に分類され, それぞれ異なった方法で寿命が設定
  されている. また, この種別は今後増えることが予想される.
   例えば次のような感じです.

   ex) 第1類のレコードは x年y月z日 まで有効
       第2類のレコードは 最後に参照されてから60日有効
       第3類のレコードは 50回参照されるまでの間有効

3) 種別ごとに寿命の設定方法が異なることもあり, レコードには寿命を
  直接示すような属性値が含まれない.

 こういう状況で, レコードの種別を問わずに寿命の判定や, 余命の更新を行う
仕組みを用意したいと考えています.

 そこで種別毎にレコードの現在の属性値を元に寿命判定や余命算出を行う関数を
作成して処理関数一覧テーブルに登録しておき, レコードの種別に応じて適切な
関数を引っ張ってきて実行できればよいのではないかと考え, 先のメールのような
質問をさせていただきました.

 最悪, データベースでは各レコードに種別の情報のみを持ち, 処理は全て
データベース外部のプログラムで実装するというという選択もありますが
各レコードがまだ生きているかどうかさえデータベース上で判定できない
ようではあまりにあまりなのと, レコード種別が増える度にプログラムを
更新しなければならないのでそれはできれば避けたいと考えています.

 データベース内である程度完結した方法で実装できるなら, おっしゃられる
ようにこれ以外の方法もぜひ検討したいと思っています.
---
torii @ nn.iij4u.or.jp



pgsql-jp メーリングリストの案内