マスタチェックなど不要
業務アプリでのマスタチェック・・・社員マスタチェック、仕入先マスタチェックなど
そんなのプログラムで実装しなくていいんじゃね〓か?
マスタからトランに参照整合性制約つけて、トランに存在するコードのマスタを削除する処理が実行されたらDBのエラーにさせればいい。
【理由】
- 業務アプリではマスタは主に経営資源や取引先の情報。それらがマスタに登録されるにはいろんな契約、承認が他部門・いろんなエロい人に渡って行われたりする。そうやすやすと登録したり削除したりする情報ではないのだ。つーかマスタ登録権限があるユーザーはどれほどいる?ちまちまマスタチェックをしたって、9割9分チェックにひっかかることはないのだ。
- けっこう大きな業務アプリになると、トランのデータ量はハンパなくなる。そうすると半年前、1年前のデータは他のストレージに移動するか削除したりする。(日々の実績ね。集計は貯めておく)参照しているトランがDBからなくなれば、マスタは削除できる。・・・これで別にいいんじゃないのかな?
- マスタチェックの実装って結構あなどれない。SQL自体は単純。が、ちゃんと書かないやつがいたり、大規模だとその分のコードもあなどれません。テストももうめんどくさーい!w まあコストがかかりますわな。マスタなんてそんな消すもんじゃねーだろ!となってくる。BTSにマスタチェック実装不備がのるたび萎える。また、ヘタなつくり(モジュールの業務ロジックの中にマスタチェックが入っていてそれをオンラインとバッチで共有してたり)になってると、バッチでループ回るたびに大量のマスタチェックを実行したりしてパフォーマンスにも害。
- などなどあって、ムダだと思うんだけどなあ。。