この特集のトップページへ
Chapter 6:ビジネスロジックの設計

head2.gif6.2.3 顧客情報の削除
 次に,顧客情報を削除する処理について考える。前項でも簡単に触れたように,顧客が削除されているかどうかを調査するときには,顧客情報テーブルのDELETEDFLAGフィールドの値がTrueであるかどうかを判定してきた。よって顧客を削除するには,その顧客を示すレコードのDELETEDFLAGフィールドの値をTrueにする処理をすればよい。

 しかし,単純にDELETEDFLAGフィールドの値をTrueにするわけにはゆかない。なぜなら,すでに伝票や請求書のデータがある顧客を削除してしまうと,その伝票や請求書の対象となる顧客がいなくなってしまい,結果として取引先不明の伝票や請求書が発生してしまうからである。

 すでに「Chapter 3 データストア層の構築」でも説明したように,このビジネスアプリケーションで扱うデータベーステーブル間の連携はFig.6-42のようになっている。

Fig.6-42 テーブル間の連携
fig6_42

 Fig.6-42を見るとわかるように,顧客情報テーブルを参照しているのは伝票情報テーブルと請求書情報テーブルである。つまり,顧客情報テーブルに含まれる顧客を削除することができるのは,伝票情報テーブルおよび請求書情報テーブル内に,削除対象となる顧客を参照しているレコードが存在しないときのみである。

prevpg.gif Chapter 6 24/92 nextpg.gif