1

単一の MySQL トランザクション内にどれだけの PHP コードを含めることができますか? 単一のトランザクション内で、他のクラスとメソッドの呼び出し、インスタンスの操作または作成などに関して、トランザクションのベスト プラクティスは何ですか?

ここで「含める」とは、 と の間に入ることを意味しbeginTransaction();ますcommit();

4

1 に答える 1

1

私は、1 つの要素とそのすべての依存関係に対して 1 つのトランザクションを使用することに慣れています。

たとえば、ユーザーがニックネームを変更できるフォーラムがあります。しかし、彼らは自分のアカウントを削除することもできます。私は投稿が削除されるのを見たくありません. そのため、各投稿のどこかにユーザーの名前などを保存する必要がありますVARCHAR

ユーザーがニックネームを変更した場合、私はトランザクションを開始し、ニックネームをどこでも変更し、エラーがなければコミットします。1 つの要求が失敗した場合、この変更に関するすべてをロールバックできるはずなので、この時点では要求の数は調べません。

しかし、管理者が管理パネルで 2 つのニックネームを変更し、1 回検証した場合、1 つのトランザクションで問題が発生するのを避けるために、2 つのトランザクション (ユーザーごとに 1 つ) を開きます。

于 2012-09-10T17:33:39.620 に答える