アプリ版:「スタンプのみでお礼する」機能のリリースについて

web開発の現場にて、
既存データの更新処理を行うとき、
(1)update
(2)delete⇒insert
というように2パターンを見かけます。

(1)と(2)の違いあるのでしょうか、
また、どのような場面においてどちらを使用したほうがいい
など教えてください。

A 回答 (2件)

>(1)update


>(2)delete⇒insert

(1)の方がオーバーヘッドが少ないですね。
とくにプライマリキーをベースに更新する場合などは効率的です。
SQL文も1文で済みますし。
私見ですが、SQLにおけるDELETEはよほどのことがない限りやらない方が
よいでしょう。
実際の運用上では・・・
(3)古いデータに削除フラグをたて、あたらしいデータを追加する
(4)カンター用の削除データを新たに立て、追加データを追加する

というのが妥当な使い方で、履歴性が増します。
また単にUPDATEをするより、

(5)INSERT IGNOREしてからUPDATEをかける
(6)REPLACEをつかう

などの運用方法もありますのでいろいろ学習してみるとよいでしょう
    • good
    • 0
この回答へのお礼

よくわかりました!
ご丁寧にいつも
どうもありがとうございます。

お礼日時:2007/08/17 18:10

データベースに対して何回アクションを起こすのか、


ということを考えてみてください。
(1)は、一度のアクションで更新ができますが、
(2)は、データベースからレコードを削除し、
新しいレコードの領域を確保したあとでレコードが追加されます。
恐らく、物理的な削除を表すのではなく、論理的な削除を表して
いるものと思います。
論理的な削除とは、例えば削除フラグによる無効状態を表現する
方法です。いわゆる時間管理であるとか履歴管理なんかに用います。
    • good
    • 0
この回答へのお礼

どうもありがとうございました。

お礼日時:2007/08/17 18:11

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!