拝啓、サカモトと申します。

Another Gahaku.Text Powered Blog

目次

ニュース

元○○

記事カテゴリ

書庫

Blog 利用状況

絵画はこっち。

マスタを「みゃすた」って呼ぶんだろうか?

業務系アプリで「あるマスタ情報を修正更新した場合に、どこをどう変更したか全て履歴を取りたい」

という要望がありました。

「マスタを登録する人がよく間違えるから」だそうです。

間違えないでください。

 

 

で。

 

たとえば

 

【画伯マスタ 】

ID

名称

カナ名称

画伯度合

更新日

 

とかあって

例えば 名称を「さかもと画伯」→「さかもとスーパー画伯」に変えた場合に、「あっ、昨日、名称を変えたんだな」とわかるように履歴を持ちたいとのこと。

もちろん、変更することのできる項目すべてに必要です(Key以外)

ついでに言うと、たとえば修正後に間違いが見つかった場合、その履歴から一発で元に戻したい(その該当レコードだけ)とのこと。

 

面倒なので、

 

【画伯変更履歴テーブル 】

ID

★変更ID(連番)

名称

カナ名称

画伯度合

更新日

 

とかとにかく全項目を更新する度に連番とって別テーブルに突っ込んでやろうかと検討中。

 

 

こういう場合、どのようにデータを持つのがベストでしょうか。

画伯度合は「星5つ」で変更できないものとします。

 

 

 

 

 

投稿日時 : 2008年3月22日 15:36

Feedback

# re: マスタを「みゃすた」って呼ぶんだろうか? 2008/03/22 15:54 通りすがり

「変更内容はこれでよろしいですか?」という確認ダイアログを10回ぐらい出してあげたらどうでしょうか。

# re: マスタを「みゃすた」って呼ぶんだろうか? 2008/03/22 16:05 R・田中一郎

マスターテーブル名
フィールド名
レコードキー値[]
変更日時
変更者ID
変更内容
変更前値
変更後値

更新メソッド下に、上記の履歴に記録するためのロジックを追加するかな。

# re: マスタを「みゃすた」って呼ぶんだろうか? 2008/03/22 18:37 暗黒もしもし(表)

つ車輪の再発明

DB側の監査というものは以下略。

# re: マスタを「みゃすた」って呼ぶんだろうか? 2008/03/22 20:57 片桐

がはくヒストリみゃすた をつくる

作成年月日時分秒(ミリ秒)
がはくみゃすたの項目全部
項目列数分のnumer(1)カラム:変更スイッチっぽいもの default 0

コード生成タイミングはUPDATEトリガで、変更前レコードとれるからそれをつっこんで変更されている列のNumber(1)に1たてとく

レコードを戻すときには、ヒストリみゃすたからがつーんとみゃすたのレコードを上書きw

キーは年月日時間だから、いつ変わったのかもわかるでし


# re: マスタを「みゃすた」って呼ぶんだろうか? 2008/03/23 22:14 HiJun

私は、履歴テーブルにしちゃいますね。

イメージとしては、
・作成日時
・キー項目
・変更前の付属項目一式
・変更後の付属項目一式
・修正区分(登録・修正・削除を値にしておくとか...)
といった感じでしょうか?

これを、実際のマスタテーブル更新時に同時に更新しちゃいます。
もしOracleだったら、私はマスタテーブル更新プロシージャ内に
自立型トランザクション付きの履歴データ作成プロシージャをコールする
イメージでしょうか...

# re: マスタを「みゃすた」って呼ぶんだろうか? 2008/03/24 11:53 さかもと画伯

なるほど、いろいろと手段が・・・。

なんにせよ、作成日時と変更項目を突っ込んでおくという方針は変わらない様子。

ありがとーございました!

がんばって作ろう・・・。

# re: マスタを「みゃすた」って呼ぶんだろうか? 2008/03/24 14:52 通りすがり

最初のコメントはネタだったのですが、華麗にスルーされて
しまったので、マジレスですが、DBの製品とバージョンによりますが、
Oracle → Total Racall
SQLServer → CDC
で調べると色々と今後は幸せになりそうです。

# re: マスタを「みゃすた」って呼ぶんだろうか? 2008/03/24 15:07 さかもと画伯

>通りすがりさん

どうも(笑)
いや、本音を言うと最初いただいたコメントを本当にそのままお客に伝えたいです(笑)

で。

SQLServerなのでCDCを検索してみます。

ありがとーございました。

# 通りすがりさんに教えてもらいました。 2008/03/24 15:18 拝啓、サカモトと申します。

通りすがりさんに教えてもらいました。

# okBBtsvGPsvGH 2011/09/30 7:54 http://oemfinder.com

XT3Qfb Strange but true. Your resource is expensive. At least it could be sold for good money on its auction!...

タイトル
名前
Url
コメント