CakePHPやsymfonyなどのPHPフレームワークで、モデルへレコードを追加・変更する時に

insert()やupdate()といったメソッドを使わず、どちらもsave()メソッドで処理していますが、
save()メソッドで一緒に処理するメリットってなんでしょうか?

よろしくお願いします。

回答の条件
  • 1人2回まで
  • 登録:
  • 終了:2009/08/07 16:25:02
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答1件)

id:kn1967 No.1

回答回数2915ベストアンサー獲得回数301

ポイント60pt

テーブルではユニークキーやプライマリーキーを用いて、

データの重複を避ける仕組みになっています。


各SQLコマンドでも同じく重複を避ける仕組みになっています。

insert 追加

  キーが同じレコードが既にテーブルにある場合、

  そのレコードは無視されてしまい、追加されない。

update 更新

  キーで探してレコードを更新。

  レコードが無ければ、そのレコードは無視されるだけで、

  勝手に追加はしてくれない。


既存であればupdate、無ければinsertという処理を行いたければ、

update → insert という流れを常に意識してプログラムしなければなりません。


フレームワークに用意されているsaveを用いれば、

レコードがあれば更新、無ければ追加という処理を自動的に行ってくれるので、

プログラマはレコードの有無を気にしなくて良くなるという利点がある訳です。

id:xxmasaxx

なるほど。

参考になります。回答有り難うございます。

2009/07/31 17:11:06

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません