質問: CakePHPやsymfonyなどのPHPフレームワークで、モデルへレコードを追加・変更する時に insert()やupdate()といったメソッドを使わず、どちらもsave()メソッドで処理していますが、 save()メソッドで一緒に処理するメリットってなんでしょうか? よろしくお願いします。
回答: テーブルではユニークキーやプライマリーキーを用いて、 データの重複を避ける仕組みになっています。 各SQLコマンドでも同じく重複を避ける仕組みになっています。 insert 追加 キーが同じレコードが既にテーブルにある場合、 そのレコードは無視されてしまい、追加されない。 update 更新 キーで探してレコードを更新。 レコードが無ければ、そのレコードは無視されるだけで、 勝手に追加はしてくれない。 既存であればupdate、無ければinsertという処理を行いたければ、 update → insert という流れを常に意識してプログラムしなければなりません。 フレームワークに用意されているsaveを用いれば、 レコードがあれば更新、無ければ追加という処理を自動的に行ってくれるので、 プログラマはレコードの有無を気にしなくて良くなるという利点がある訳です。