0

以前の投稿のフォローアップとして、これが POST データに基づいてレコードを更新する最も効率的な方法であるかどうかに興味があります。

Routes.php

//COLLECT POST DATA IN $thisOrder ARRAY
//DETERMINE THAT $thisOrderID is the primary key of the record to be updated
$updateOrder = Order::find($thisOrderID)->update($thisOrder);

私には、これは2つのクエリを実行しているようです:

1 - SELECT * FROM tblOrder WHERE orderid=$thisOrderID
2 - UPDATE SET //myvalues = $thisOrder// WHERE orderid = $thisOrderID

これが正しい構文ではないことは理解していますが、簡単に説明しています。

私はこれを正しく理解していますか?find() コマンドを使用すると SELECT が実行され、 update() は更新が実行されます。

ID がわかっていれば、直接更新することはできませんか?

ありがとう!

4

1 に答える 1

1

はい、あなたはそれを正しくやっています。ORM を使用することで、基礎となる SQL から自分自身を抽象化しています。すなわち。シンプルさ (ほぼ間違いなく) とコードの削減のために効率を犠牲にしています。これは悪いことではなく、ここでの抽象化は完全に正当です。

私はこれについて心配しません。orderid列にインデックスがある限り。最初に機能するアプリを構築し、次に最適化します。必要な理由を説明できない限り、最適化する必要はありません。チャンスが必要な場合は、この種のことを心配する必要はありません。その時点で、アプリのボトルネックを見つけて最適化します。この ORM がボトルネックにならない可能性があります。

これは単純化しすぎているため、ここでもう少し詳しく説明します。

于 2012-12-03T22:28:06.483 に答える