(58)【調査した分野】(Int.Cl.,DB名)
同一の適用対象について相互に重複する有効期間を備えた複数の時限データが存在する場合に、上記履歴管理部は、上記適用開始データ及び適用終了データに設定された登録日時が最も新しい時限データを重複している期間について有効と認定することを特徴とする請求項1または2に記載の時限データの履歴管理システム。
上記適用対象の種類に対応した具体的なテーブル名及び各テーブルが備える上記適用対象の種類に対応した具体的な項目名とデータ型のテーブル設定情報に基づいて、少なくとも具体的なテーブル名、具体的なデータ項目及び各データ項目のデータ型を定義したクラスをテーブル毎に生成し、所定の記憶手段に格納する型生成手段と、
上記履歴管理部の処理ロジックを記述したプログラム部品を格納しておく記憶手段と、
上記プログラム部品に上記の各クラスを引数として与えることにより、各テーブルの操作に特化した履歴管理部を生成する手段と、
を備えたことを特徴とする請求項1〜3の何れかに記載の時限データの履歴管理システム。
【発明を実施するための最良の形態】
【0014】
図1は、この発明に係る時限データの第1の履歴管理システム10の全体構成を示すものであり、Webサーバ12と、APサーバ14と、DBサーバ16とを備えている。
各サーバ間は、通信ネットワークを介して接続されている。
また、Webサーバ12には、通信ネットワークを介して、ユーザの操作するクライアント端末17が接続される。
クライアント端末17は、PC等のコンピュータよりなり、OSやWebブラウザ、テキストエディタ等のプログラムを搭載している。
【0015】
APサーバ14は、データ参照部18と、データ更新部20と、売価履歴管理部22と、テーブル設定部24と、型生成部26と、型格納部27と、コンパイラ28と、データアクセス汎用部品30とを備えている。
上記のデータ参照部18、データ更新部20、売価履歴管理部22、テーブル設定部24、型生成部26、コンパイラ28は、APサーバ14のCPUが、専用のアプリケーションプログラムに従って所定の処理を実行することで実現される。また、型格納部27は、APサーバ14の外部記憶装置内に設けられている。データアクセス汎用部品30も、同外部記憶装置内に格納されている。
【0016】
DBサーバ16は、データベース管理システム(RDBMS)32と、売価基本テーブル34と、売価適用開始テーブル36と、売価適用終了テーブル38と、売価適用開始取消テーブル40と、売価適用終了取消テーブル42とを備えている。
【0017】
図2は、上記の各テーブルの具体的構成を示すものである。
まず、売価基本テーブル34は、「売価基本ID(主キー)」、「商品ID(外部キー)」、「売価」及び「登録日時」のデータ項目を備えている。
また、売価適用開始テーブル36は、「売価適用開始ID(主キー)」、「売価基本ID(外部キー)」、「適用開始日」及び「登録日時」のデータ項目を備えている。有効期限が時間単位で設定される場合には、適用開始日の代わりに、「適用開始日時」のデータ項目が設けられる。
売価適用終了テーブル38は、「売価適用終了ID(主キー)」、「売価基本ID(外部キー)」、「適用終了日」及び「登録日時」のデータ項目を備えている。有効期限が時間単位で設定される場合には、適用終了日の代わりに、「適用終了日時」のデータ項目が設けられる。
売価適用開始取消テーブル40は、「売価適用開始ID(主キー/外部キー)」及び「登録日時」のデータ項目を備えている。
売価適用終了取消テーブル42は、「売価適用終了ID(主キー/外部キー)」及び「登録日時」のデータ項目を備えている。
【0018】
上記の各テーブルには、以下の制約が予め課せられている。
(1)キー項目は一つに限定される。
したがって、複数の項目の組合せによってキー項目を構成すること(複合キー)は、禁止される。
【0019】
(2)各テーブルにはレコードの追加のみが許容され、既存レコードの値の更新やレコードの削除は禁止される。
したがって、値に変更が生じた場合など、発生タイミングの異なる情報は別レコードとしてテーブルに格納されることとなる(詳細は後述)。
【0020】
(3)各テーブルのカラムには、NULL値禁止制約、フラグ値禁止制約、区分値禁止制約が課せられる。
まず「NULL値禁止制約」とは、データ項目の値としてNULL(値なし)を充填することが禁止されることを意味しており、このようなNULL値の充填を想定したデータ項目の設定自体が許容されないことになる。
つぎに「フラグ値禁止制約」とは、データ項目の値としてフラグ値(「1/0」、「ON/OFF」、「TRUE/FALSE」等の2値データ)を充填することが禁止されることを意味しており、このようなフラグ値の充填を想定したデータ項目の設定自体が許容されないことになる。
「区分値禁止制約」とは、データ項目の値として区分値(「1:正社員」、「2:パート」、「3:アルバイト」等)を充填することが禁止されることを意味しており、このような区分値の充填を想定したデータ項目の設定自体が許容されないことになる。
【0021】
これらの制約ルールは、新規テーブルの設計時やSQL発行時に、データベース管理システム32によって適否がチェックされ、制約ルールに違反する処理の実行が拒絶されることにより、その実効性が担保される。
【0022】
図2より明らかなように、上記のルールに従い、各テーブルは単一のデータ項目によって主キー(PK)が構成されている。
また、「売価適用開始取消」に関するデータも、通常であれば売価適用開始テーブル36において「売価適用開始取消フラグ」等のデータ項目が設けられ、各レコードに「1/0」等のフラグ値を充填することで状態が管理されるか、あるいは売価取消開始レコード自体が削除されるところであるが、売価適用開始取消テーブル40を売価適用開始テーブル36とは別個に設けることにより、売価適用開始取消の状態管理がなされている。要するに、この売価適用開始取消テーブル40に登録された売価適用開始IDが「取消」状態にあることとなり、レコードの有無によって取消の有無が表現されている。
【0023】
同様に、「売価適用終了取消」に関するデータも、通常であれば売価適用終了テーブル38において「売価適用終了取消フラグ」等のデータ項目が設けられ、各レコードに「1/0」等のフラグ値を充填することで状態が管理されるか、あるいは売価取消終了レコードが削除されるところであるが、売価適用終了取消テーブル42を売価適用終了テーブル38とは別個に設けることにより、売価適用終了取消の状態管理がなされている。
【0024】
ここで、クライアント端末17からの検索リクエストを受け取ったWebサーバ12は、検索条件入力画面をクライアント端末17に送信する。
図3(a)は、クライアント端末17のWebブラウザ上に表示された検索条件入力画面50を示しており、同画面50は商品ID、年月日、売価の項目を備えている。
これに対しユーザが、商品IDとして「A」を、年月日として「2010/10/03」を入力して検索ボタン52をクリックすると、これらの検索条件がWebサーバ12経由でAPサーバ14に送信される。
これを受けたデータ参照部18は、売価履歴管理部22に上記の検索条件を渡し、検索処理を依頼する。
【0025】
これに対し売価履歴管理部22は、まず売価基本テーブル34から「商品ID:A」に係る売価基本データの取得を依頼する内容のSQLをDBサーバ16に対して発行する。
つぎに売価履歴管理部22は、DBサーバ16から受信したデータから売価基本IDを抽出し、売価適用開始テーブル36及び売価適用終了テーブル38から対応の売価基本IDに係るデータの取得を依頼する内容のSQLをDBサーバ16に対して発行する。
【0026】
つぎに売価履歴管理部22は、DBサーバ16から受信したデータから売価適用開始IDを抽出し、売価適用開始取消テーブル40から対応の売価適用開始IDに係るデータの取得を依頼する内容のSQLをDBサーバ16に対して発行する。同時に、DBサーバ16から受信したデータから売価適用終了IDを抽出し、売価適用終了取消テーブル42から対応の売価適用終了IDに係るデータの取得を依頼する内容のSQLをDBサーバ16に対して発行する。
【0027】
つぎに売価履歴管理部22は、DBサーバ16から送信された各データを解析し、「2010年10月3日」における「商品ID:A」の売価を特定する。
図4は、DBサーバ16から送信されたデータに基づいて生成された商品ID:Aの売価適用情報を時系列に沿って並べた模式図である。
【0028】
図中、鎖線で表示された(1)の売価適用情報は、売価が800円、適用開始日(始期)が「2010/09/01」、適用終了日(終期)が「2011/03/31」、登録日が「2010/04/01」であるが、同日付で削除されているため、対象外情報であることを示している。
この売価適用情報が「削除」されていることは、具体的には、売価適用開始取消テーブル40及び売価適用終了取消テーブル42に、対応の売価適用開始ID及び売価適用終了IDが登録されていることから判定される(詳細は後述)。
【0029】
これに対し、実線で表示された(2)の売価適用情報は、売価が700円、適用開始日が「2010/09/01」、適用終了日が「2011/03/31」、登録日が「2010/04/01」であり、削除されていないことを示している。
同様に、実線で表示された(3)の売価適用情報は、売価が600円、適用開始日が「2010/10/01」、適用終了日が「2010/12/25」、登録日が「2010/08/15」であり、削除されていないことを示している。
同じく実線で表示された(4)の売価適用情報は、売価が500円、適用開始日が「2010/11/01」、適用終了日が「2010/12/25」、登録日が「2010/10/25」であり、削除されていないことを示している。
同じく実線で表示された(5)の売価適用情報は、売価が500円、適用開始日が「2010/11/01」、適用終了日が「2011/01/31」、登録日が「2010/12/25」であり、削除されていないことを示している。
売価履歴管理部22は、各売価適用開始データ及び売価適用終了データの登録日時を比較し、同一の登録日時を備えた両データを抽出することにより、有効期間の始期と終期を備えた売価適用情報を生成する。
【0030】
ここで、削除されていない(2)〜(5)の売価適用情報を参照すると、「2010年10月3日」が適用期間中に含まれる売価適用情報として、(2)及び(3)が該当することがわかる。
ただし、このように適用期間が重複している複数の売価適用情報が併存する場合には、登録日時が後の売価適用情報が優先されるルールに従い、売価履歴管理部22は(3)の売価適用情報の「600円」を「2010年10月3日」における有効な売価と認定し、データ参照部18に出力する。
【0031】
データ参照部18は、この検索結果データをWebサーバ12に送信する。
この結果、Webサーバ12からクライアント端末17に対して、検索結果画面が送信される。
図3(b)は、クライアント端末17のWebブラウザ上に表示された検索結果画面54を示すものであり、「売価」の項目に「600」(円)の値が表示されている。
【0032】
因みに、クライアント端末17から送信された検索条件が「商品ID:A/年月日:2011/02/15」であった場合には、(2)の売価適用情報に従い、「700円」の売価がクライアント端末17に表示されることとなる。
【0033】
また、図示は省略したが、ユーザが
図3(a)の検索条件入力画面50において「商品ID:A」及び「売価:600」を入力して検索ボタン52をクリックした場合には、商品ID:Aに係る売価600の売価履歴情報がリストアップされた検索結果画面が、クライアント端末17のディスプレイに表示される。
これによりユーザは、商品ID:Aの商品を売価600円で販売した期間を認識することが可能となる。
【0034】
図5(a)に示すように、検索条件入力画面50において「商品ID:A」のみを特定し、年月日をブランクとした検索条件が入力された場合、
図5(b)に示すように、商品ID:Aに係る全ての有効な売価適用情報(削除されたものは除く)がリストアップされた検索結果画面56が、クライアント端末17のWebブラウザ上に表示される。
リストアップされた各売価適用情報は、No、売価、適用開始、適用終了、登録日時の表示項目を備えている。
この表示用データも、売価履歴管理部22によって生成される。
【0035】
ここで、ユーザがNO. 0014のチェックボックスにチェックを入れて修正ボタン58をクリックすると、
図6に示すように、商品ID、売価、適用開始、適用終了の項目を備えた当該売価適用情報の詳細画面60が、クライアント端末17のWebブラウザ上に表示される。
【0036】
これに対しユーザが、売価を「500→550」に書き換えた上で登録ボタン62をクリックすると、売価履歴管理部22はデータ修正のための処理を実行する。
まず売価履歴管理部22は、DBサーバ16に対して「商品ID:A/売価:550円」の売価基本データが既に登録されているか否かを照会するSQLを発行する。
ここで、「商品ID:A/売価:550円」の売価基本データが売価基本テーブル34に存在した場合、当該売価基本データの売価基本IDに関連付けた売価適用開始データ(適用開始日:2010/11/01)を売価適用開始テーブル36に追加することを求めるSQLと、同売価基本IDを指定した売価適用終了データ(適用終了日:2010/12/25)を売価適用終了テーブル38に追加することを求めるSQLを、DBサーバ16に発行する。
【0037】
これに対し、「商品ID:A/売価:550円」の売価基本データが売価基本テーブル34に存在しなかった場合、この売価基本データを売価基本テーブル34に追加することを求めるSQLをDBサーバ14に発行する。
つぎに売価履歴管理部22は、DBサーバ16から上記売価基本データの売価基本IDを取得した後、当該売価基本IDを指定した売価適用開始データ(適用開始日:2010/11/01)を売価適用開始テーブル36に追加することを求めるSQLと、同売価基本IDを指定した売価適用終了データ(適用終了日:2010/12/25)を売価適用終了テーブル38に追加することを求めるSQLを、DBサーバ16に発行する。
【0038】
上記の結果、「商品ID:A/売価:550円/適用開始日:2010/11/01/適用終了日:2010/12/25」の売価適用情報が、DBサーバ16に新たに追加される。この段階では、「商品ID:A/売価:500円/適用開始日:2010/11/01/適用終了日:2010/12/25」の売価適用情報と重複することになるが、上記の通り、登録日時が新しい方が優先適用されるため、論理的な修正が実現されたことになる。もちろん、ユーザは重複する従前の売価適用情報について売価適用開始取消データ及び売価適用終了取消データを登録することにより、これを論理的に削除することもできる。
ユーザは、売価と共に適用開始日及び適用終了日の修正を同時にリクエストすることも当然に可能である。
【0039】
ユーザが、
図5(b)の検索結果画面56において、NO.0014のチェックボックスにチェックを入れて削除ボタン64をクリックした場合には、売価履歴管理部22は売価履歴データの削除のための処理を実行する。
まず売価履歴管理部22は、DBサーバ16に対して、NO.0014の売価適用情報に係る売価適用開始IDを売価適用開始取消テーブル40に格納することを求めるSQLを、DBサーバ16に発行する。
同時に売価履歴管理部22は、DBサーバ16に対して、上記売価適用情報に係る売価適用終了IDを売価適用終了取消テーブル42に格納することを求めるSQLを、DBサーバ16に発行する。
以上の結果、売価基本ID:0041の売価履歴データは、論理的に削除された状態となる。
【0040】
ユーザが、
図5(b)の検索結果画面56において追加ボタン66をクリックするか、あるいは図示しないメニュー画面において「売価データの追加」ボタンをクリックすると、Webサーバ12から新規登録画面がクライアント端末17に送信され、Webブラウザ上に表示される。
図示は省略したが、この新規登録画面は
図6に示した詳細画面60と同様、商品ID、売価、適用開始、適用終了の項目を備えている。ただし、各項目には文字列が充填されてはおらず、空白となされている。
【0041】
これに対しユーザが、商品ID、売価、適用開始日、適用終了日を入力した上で登録ボタンをクリックすると、売価履歴管理部22はデータ追加のための処理を実行する。
まず売価履歴管理部22は、DBサーバ16に対して、入力された商品ID及び売価を備えた売価基本データが既に登録されているか否かを照会するSQLを発行する。
ここで、該当の売価基本データが売価基本テーブル34に存在した場合、売価履歴管理部22は、当該売価基本データの売価基本ID及び入力された売価適用開始日を備えた売価適用開始データを売価適用開始テーブル36に追加することを求めるSQLと、同売価基本ID及び入力された売価適用終了データを売価適用終了テーブル38に追加することを求めるSQLを、DBサーバ16に発行する。
【0042】
これに対し、該当の売価基本データが売価基本テーブル34に存在しなかった場合、売価履歴管理部22はDBサーバ16に対して、この売価基本データを売価基本テーブル34に追加することを求めるSQLを発行する。
つぎに売価履歴管理部22は、DBサーバ16から上記売価基本データの売価基本IDを取得した後、当該売価基本ID及び入力された売価適用開始日を備えた売価適用開始データを売価適用開始テーブル36に追加することを求めるSQLと、同売価基本ID及び入力された売価適用終了日を備えた売価適用終了データを売価適用終了テーブル38に追加することを求めるSQLを、DBサーバ16に発行する。
【0043】
売価履歴管理部22は、上記の通り、データ参照部18から出力されたデータの参照要求やデータ更新部20から出力されたデータの更新要求に応じて必要なSQLをDBサーバ16に発行すると共に、DBサーバ16から取得したデータの加工・分析処理を実行する。
そして、DBサーバ16に格納された各テーブルにアクセスするためには、それぞれのテーブル構成(「売価基本テーブル」等のテーブル名や、「売価」等のカラム名)を認識している必要がある。このため、売価履歴管理部22は文字通り売価履歴の管理機能に特化されたものであり、これを税率履歴管理システムなどとして流用することはできない。
【0044】
しかしながら、具体的なテーブル名やカラム名を除いた処理ロジックの部分(例えば、クライアント端末から特定の時限データについて削除のリクエストがあった場合には、適用開始取消データと適用終了取消データを追加する等)に関しては、どのような種類の時限データについても共通に適用可能といえる。
このため、この第1の履歴管理システム10にあっては、各テーブルの設定時に当該テーブルの構成にマッチした「○○履歴管理部」を、自動生成する機能を備えている。
【0045】
まずユーザは、クライアント端末17からテーブル設定部24にアクセスし、新規テーブルの作成をリクエストする。この結果、テーブル設定画面がクライアント端末17に送信され、Webブラウザ上に表示される(図示省略)。
ユーザは、このテーブル設定画面上で、テーブルの名称(売価基本テーブル等)、データ項目名(売価基本ID等)、データ型、桁数等を指定し、テーブル設定部24に送信する。
【0046】
テーブル設定部24は、送信された設定データをDBサーバ16に送信し、新規テーブルの生成を依頼する。
これを受けたデータベース管理システム32は、この設定データに従って新規のテーブル(売価基本テーブル34、売価適用開始テーブル36、売価適用終了テーブル38、売価適用開始取消テーブル40、売価適用終了取消テーブル42)をDBサーバ16の記憶装置内に生成する。
【0047】
つぎに、型生成部26が起動し、テーブル設定部24から受け取った各テーブルの設定データに基づいて、DBサーバ16内に生成された各テーブルに対応したクラス(型)を生成する。具体的には、売価基本クラス70、売価適用開始クラス71、売価適用終了クラス72、売価適用開始取消クラス73、売価適用終了取消クラス74が生成され、型格納部27に格納される。
これらクラスの実体は、対応テーブルの名称、データ項目、データ型、桁数等が記述されたプログラムである。
【0048】
つぎに、コンパイラ28が起動し、型格納部27内の各クラスをデータアクセス汎用部品30に引数として与えることにより、売価履歴管理部22を生成する。
すなわち、データアクセス汎用部品30は、「○○履歴管理部」が共通して実行すべき処理ロジックの部分のコードを備えたプログラム部品であり、これに対して処理対象となる売価基本テーブル等の具体的な構成を組み込むことにより、当該売価履歴データの管理に特化した売価履歴管理部22が生成される。
【0049】
上記した売価基本クラス70、売価適用開始クラス71、売価適用終了クラス72、売価適用開始取消クラス73、売価適用終了取消クラス74は、テーブルの設計データに基づいて型生成部26が自動生成するものであるため、人為的なミスが生じる余地がなく、本来的にテスト不要といえる。
また、データアクセス汎用部品30のコーディング自体は人間の手によってなされるものであるが、汎用的に使い回すことができるため、事前に厳重なテストを施し、バグを徹底的に潰しておけば、「○○履歴管理部」を生成する都度、テストを実施する必要がない。
以上のことから、操作対象となる各テーブルの構成に特化した各種履歴管理部を生成する度にテストを実施する必要がないということになる。
【0050】
つぎに、
図7に基づいて、この第1の履歴管理システム10を各国における消費税率の履歴管理に用いる例を説明する。
この場合、まずユーザは、クライアント端末17からテーブル設定部24にアクセスし、新規テーブルの作成をリクエストする。この結果、テーブル設定画面がクライアント端末17に送信され、Webブラウザ上に表示される(図示省略)。
ユーザは、このテーブル設定画面上で、テーブルの名称(税率基本テーブル等)、データ項目名(税率基本ID等)、データ型、桁数等を指定し、テーブル設定部24に送信する。
【0051】
テーブル設定部24は、送信された設定データをDBサーバ16に送信し、新規テーブルの生成を依頼する。
これを受けたデータベース管理システム32は、この設定データに従って税率の履歴管理に特化したテーブルとして、税率基本テーブル76、税率適用開始テーブル77、税率適用終了テーブル78、税率適用開始取消テーブル79、税率適用終了取消テーブル80を、DBサーバ16の記憶装置内に生成する。
【0052】
図8は、上記の各テーブルの具体的構成を示すものである。
まず、税率基本テーブル76は、「税率基本ID(主キー)」、「国ID(外部キー)」、「税率」及び「登録日時」のデータ項目を備えている。
また、税率適用開始テーブル77は、「税率適用開始ID(主キー)」、「税率基本ID(外部キー)」、「適用開始日」及び「登録日時」のデータ項目を備えている。
税率適用終了テーブル78は、「税率適用終了ID(主キー)」、「税率基本ID(外部キー)」、「適用終了日」及び「登録日時」のデータ項目を備えている。
税率適用開始取消テーブル79は、「税率適用開始ID(主キー/外部キー)」及び「登録日時」のデータ項目を備えている。
税率適用終了取消テーブル80は、「税率適用終了ID(主キー/外部キー)」及び「登録日時」のデータ項目を備えている。
【0053】
上記の各テーブルには、上記と同様、以下の制約が予め課せられている。
(1)キー項目は一つに限定される。
(2)各テーブルにはレコードの追加のみが許容され、既存レコードの値の更新やレコードの削除は禁止される。
(3)各テーブルのカラムには、NULL値禁止制約、フラグ値禁止制約、区分値禁止制約が課せられる。
【0054】
つぎに、型生成部26が起動し、テーブル設定部24から受け取った各テーブルの設定データに基づいて、DBサーバ16内に生成された各テーブルに対応したクラス(型)を生成する。具体的には、税率基本クラス81、税率適用開始クラス82、税率適用終了クラス83、税率適用開始取消クラス84、税率適用終了取消クラス85が生成され、型格納部27に格納される。
【0055】
つぎに、コンパイラ28が起動し、型格納部27内の各クラスをデータアクセス汎用部品30に引数として与えることにより、税率履歴データの管理に特化した税率履歴管理部86を生成する。
これ以降、この第1の履歴管理システム10は税率履歴管理システムとして機能し、税率基本テーブル76、税率適用開始テーブル77、税率適用終了テーブル78、税率適用開始取消テーブル79、税率適用終了取消テーブル80に対応のデータが蓄積されていく。
【0056】
ここで、クライアント端末17からの検索リクエストを受け取ったWebサーバ12は、検索条件入力画面をクライアント端末17に送信する。
図9(a)は、クライアント端末17のWebブラウザ上に表示された検索条件入力画面87を示しており、同画面87は国ID、年月日、税率の項目を備えている。
これに対しユーザが、国IDとして「JP」を、年月日として「2009/01/03」を入力して検索ボタン88をクリックすると、これらの検索条件がWebサーバ12経由でAPサーバ14に送信される。
これを受けたデータ参照部18は、税率履歴管理部86に上記の検索条件を渡し、検索処理を依頼する。
【0057】
これに対し税率履歴管理部86は、まず税率基本テーブル76から「国ID:JP」に係る税率基本データの取得を依頼する内容のSQLをDBサーバ16に対して発行する。
つぎに税率履歴管理部86は、DBサーバ16から受信したデータから税率基本IDを抽出し、税率適用開始テーブル77及び税率適用終了テーブル78から対応の税率基本IDに係るデータの取得を依頼する内容のSQLをDBサーバ16に対して発行する。
【0058】
つぎに税率履歴管理部86は、DBサーバ16から受信したデータから税率適用開始IDを抽出し、税率適用開始取消テーブル79から対応の税率適用開始IDに係るデータの取得を依頼する内容のSQLをDBサーバ16に対して発行する。同時に、DBサーバ16から受信したデータから税率適用終了IDを抽出し、税率適用終了取消テーブル80から対応の税率適用終了IDに係るデータの取得を依頼する内容のSQLをDBサーバ16に対して発行する。
【0059】
つぎに税率履歴管理部86は、DBサーバ16から送信された各データを解析し、「2009年1月3日」におけるJP(日本)の税率を特定する。
データ参照部18は、この検索結果データをWebサーバ12に送信する。
この結果、Webサーバ12からクライアント端末17に対して、検索結果画面が送信される。
図9(b)は、クライアント端末17のWebブラウザ上に表示された検索結果画面89を示すものであり、「税率」の項目に「5」(%)の値が表示されている。
【0060】
その他、詳細な説明は省略するが、税率履歴管理部86は上記の売価履歴管理部22と同様、クライアント端末17からのリクエストに応じて、税率適用データの論理的な修正や削除、あるいは追加処理を実行する。
【0061】
各種業務システムの中では、様々な時限データが取り扱われており、これまでは個々の時限データ毎に履歴を管理するための仕組みが場当たり的に設計されてきた。
これに対し、第1の履歴管理システム10の場合には、時限データの履歴管理のためのテーブルを、「基本テーブル」、「適用開始テーブル」、「適用終了テーブル」、「適用開始取消テーブル」、「適用終了取消テーブル」の5つに統一すると共に、履歴管理の処理ロジックをデータアクセス汎用部品30として共通化しておき、これに具体的なテーブル構成を適用することにより、各種の時限データに特化した履歴管理部を自動生成する仕組みを備えている。
この結果、個別に履歴管理システムを構築したりテストを実施したりする手間が省けることはもちろん、時限データの種類を問わず共通の仕組みを備えることにより、メンテナンス性が向上する利点が生じる。
【0062】
上記においては、5つのテーブル(基本テーブル、適用開始テーブル、適用終了テーブル、適用開始取消テーブル、売価適用終了取消テーブル)によって、様々な時限データの履歴を管理する方式について説明したが、さらに「適用期間」のテーブルを追加することにより、より柔軟な履歴管理を実現することができる。
【0063】
図10はその具体例を示すものであり、この時限データの第2の履歴管理システム90は、DBサーバ16内に、売価基本テーブル34、売価適用開始テーブル36、売価適用終了テーブル38、売価適用開始取消テーブル40、売価適用終了取消テーブル42の他に、売価適用期間テーブル91を設けた点に特徴を備えている。
【0064】
図11に示すように、売価適用期間テーブル91は、「売価適用開始ID(主キー/外部キー)」、「売価適用終了ID(外部キー)」及び「登録日時」のデータ項目を備えている。ただし、「売価適用終了ID」を主キーとしてもよい。
他のテーブルの構成は、
図2に示したものと同じである。
【0065】
このような、売価適用開始IDと売価適用終了IDとの関連性を管理するためのテーブルを備えない第1の履歴管理システム10の場合、売価適用開始データと売価適用終了データとの関連付けはそれぞれの「登録日時」に基づいて行われていたため、両データは必ず同一のタイミングで登録される必要性があった。
これに対し、売価適用開始ID及び売価適用終了IDの項目を備えた売価適用期間テーブル91を設けることにより、両データを別個のタイミングで登録しても、有効期間を正しく管理することが可能となる。
【0066】
例えば、
図12(a)に示すように、ユーザが新規登録画面95において商品ID、売価、適用開始日のみを特定して登録ボタン96をクリックした場合、売価履歴管理部22は上記と同様の手順で、DBサーバ16に対して「商品ID:A/売価:700/適用開始日:2010/09/01」の売価適用情報の登録を求める。
【0067】
これを受けたDBサーバ16のデータベース管理システム32は、上記と同様、「商品ID:A/売価:700」の売価基本データが存在しない場合に限り、売価基本テーブル34に当該売価基本データのレコードを追加する。
つぎにデータベース管理システム32は、売価適用開始テーブル36に売価基本ID及び適用開始日(2010/09/01)を備えたレコードを追加する。
図13(1)は、「適用開始日」のみが登録された売価履歴データを示している。
【0068】
後日、ユーザのクライアント端末17から「商品ID:A」が検索条件として入力された場合、図示は省略したが、商品ID:Aに係る全ての有効な売価適用情報がリストアップされた検索結果画面が、クライアント端末17のWebブラウザ上に表示される。
そして、このリスト中からユーザが「商品ID:A/売価:700/適用開始日:2010/09/01」の売価適用情報にチェックを入れ、修正ボタンをクリックすると、
図12(b)に示すように、当該売価適用情報の詳細画面60が表示される。
【0069】
これに対しユーザが、ブランクとなっている「適用終了」の項目に「2011/03/31」を入力して登録ボタン62をクリックすると、売価履歴管理部22はデータ修正のための処理を実行する。
【0070】
まず売価履歴管理部22は、「商品ID:A/売価:700」の売価基本データに係る売価基本IDと、「2011/03/31」の適用終了日を備えた売価適用終了データを、売価適用終了テーブル38に追加することを求めるSQLを、DBサーバ16に発行する。
【0071】
つぎに売価履歴管理部22は、当該売価適用終了データに係る売価適用終了IDと、「適用開始日:2010/09/01」の売価適用開始データに係る売価適用開始IDを備えた売価適用期間データを、売価適用期間テーブル91に追加することを求めるSQLを、DBサーバ16に発行する。
【0072】
この結果、
図13(2)に示すように、売価適用情報の「適用開始日」及び「適用終了日」が揃った状態となる。
この売価適用情報の適用開始日と適用終了日の関連付けは、売価履歴管理部22が、DBサーバ16から送信された各売価適用開始データの適用開始IDと売価適用終了データの適用終了IDが一の売価適用期間データ中に揃って登録されているか否かをチェックすることにより、実現される。
【0073】
この第2の履歴管理システム90の場合、上記のように参照時に売価履歴管理部22が売価適用期間テーブル91をチェックし、売価適用開始データと売価適用終了データとの関連付けを行う必要が生じるが、最初に開始日を登録しておき、後から終了日を追加登録することが可能となり、時限データのより柔軟な管理運用が可能となる。
【0074】
もちろん、テーブル数が増加する分、上記の通り、売価履歴管理部22の処理内容が複雑化することは否めないが、これに対応した処理ロジックがコーディングされたデータアクセス汎用部品30を用意しておくことで、上記と同様、具体的な履歴管理部を自動生成することができるため、個々のプログラム開発の負担を抑えることができる。
【0075】
すなわち、クライアント端末17から売価適用期間テーブルを含めた各テーブルの設定データが送信されると、テーブル設定部24はこれをDBサーバ16に送信し、新規テーブルの生成を依頼する。
これを受けたデータベース管理システム32は、この設定データに従って新規のテーブル(売価基本テーブル34、売価適用開始テーブル36、売価適用終了テーブル38、売価適用開始取消テーブル40、売価適用終了取消テーブル42、売価適用期間テーブル91)をDBサーバ16の記憶装置内に生成する。
【0076】
つぎに型生成部26が起動し、テーブル設定部24から受け取った各テーブルの設定データに基づいて、DBサーバ16内に生成された各テーブルに対応したクラス(型)を生成する。具体的には、売価基本クラス70、売価適用開始クラス71、売価適用終了クラス72、売価適用開始取消クラス73、売価適用終了取消クラス74、売価適用期間テーブル93が生成され、型格納部27に格納される。
【0077】
つぎにコンパイラ28が起動し、型格納部27内の各クラスを、6つのテーブル構成に対応したデータアクセス汎用部品30に引数として与えることにより、6つのテーブル構成に対応した売価履歴管理部22を生成する。
【0078】
上記のように、ユーザが
図12(a)の新規登録画面95において適用開始日のみを入力し、適用終了日を入力したかった場合、売価適用期間データは売価適用終了データの追加時に売価適用期間テーブル91に登録される。
これに対し、ユーザが
図12(a)の新規登録画面95において適用開始日と適用終了日を同時に入力した場合、売価履歴管理部22はDBサーバ16に対し、最初から売価適用期間データを売価適用期間テーブル91に登録することを依頼する。
【0079】
もっとも、ユーザが
図12(a)の新規登録画面95において適用開始日と適用終了日を同時に入力した場合には、売価適用期間データを売価適用期間テーブル91に登録することなく、5つのテーブル構成を前提とした第1の履歴管理システム10の場合と同様、売価履歴管理部22が適用開始データ及び適用終了データの登録日時の同一性に基づいて適用開始日と適用終了日のマッチングを行うように、この第2の履歴管理システム90を構成することもできる。
【0080】
売価適用開始データを一旦登録した後、対をなす売価適用終了データが登録される前に当該売価適用開始データ自体が不要になった場合には、当該売価適用開始データに係る売価適用開始IDを売価適用開始取消テーブル40に登録すればよい。
【0081】
上記においては、先に売価適用開始日が登録された後、売価適用終了日が追加されるパターンを例示したが、
図14(1)に示すように、先に売価適用終了日を登録しておき、
図14(2)に示すように、後で売価適用開始日を追加することも当然に可能である。
【0082】
上記においては、クライアント端末17からのリクエストに応じてデータの検索や更新が実行される例を示したが、履歴管理部は他のコンピュータシステムからのリクエストに応じて上記の各種処理を実行することも当然に可能である。