人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

RDBのテーブル設計で
「updateやdeleteはさせず、すべての変更はレコードのinsertのみで実現する。変更の衝突に強く、また古いレコードがそのまま変更ログとしても機能する」
というやり方があるのを何かの解説記事で読んだ覚えがあります。

このようなメソッドについて詳しいページを、またこのメソッドの名前などあったら教えてください。

●質問者: Sampo
●カテゴリ:コンピュータ
✍キーワード:DELETE RDB メソッド レコード ログ
○ 状態 :終了
└ 回答数 : 3/3件

▽最新の回答へ

1 ● winplus
●27ポイント

たぶん「論理削除」のことかな。

http://d.hatena.ne.jp/japanrock_pg/20080715/1216088788

http://www.oracle.co.jp/events/tk071020/1020_system.pdf

◎質問者からの返答

アイディアとしてはまさにそうなんですが、論理削除では削除フラグを立てる、ということはupdate操作なんですよね。


2 ● tera-p
●27ポイント

うーん.いくつか候補が思いつきます.

WORM (Write Once, Read Many)
「書き換え」を許さないデータ管理方式です.ただ,あまりRDBMSの文脈では聞きません.
Shared nothing
WORM で設計することにより実現できるアーキテクチャです.WORMの制約と引き換えに,高いスケーラビリティが得られます.
追記型データ管理
PostgreSQL のデータ管理方式として有名です.テーブル設計の技術ではないですが.

解説記事,ということで3つ目かな?であれば,データ管理 というページが役立つと思います.


3 ● winplus
●26ポイント

「削除フラグを立てる」のは、有効な(最新の)データを区別するため。たとえば、incrementしたidや発生日時が最大のもの、というような条件で有効な(最新の)データを判断するのなら、update操作は不要になります。メリット・デメリットは「論理削除」と、そう変わらないと思います。

「履歴管理」をキーワードとする議論も参考になるかも。

http://www.oracle.co.jp/forum/thread.jspa?threadID=8009664&tstar...

などなど。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ