Rails を使用して、特定のテーブルへの同時アクセスを許可する Web アプリケーションを計画しています。トランザクションを実装するためのアドバイスはありますか? それは必要ですか?
アプリケーションは、CentOS LAM 構成で実行されます。
Rails を使用して、特定のテーブルへの同時アクセスを許可する Web アプリケーションを計画しています。トランザクションを実装するためのアドバイスはありますか? それは必要ですか?
アプリケーションは、CentOS LAM 構成で実行されます。
トランザクションと同時実行性が互いに大きく関係していることを知りません。
私が見ているように、トランザクションを使用する主な理由は、データベースで複数の操作を実行する場合、それらがすべて機能するか、すべて失敗するかを確認することです。詳細については、私のこのブログ投稿を参照してください。
つまり、いいえ、同時実行の状況に対処する方法としてトランザクションについて心配する必要はありません。(間違っているかもしれませんが。)
トランザクションとコンカレンスは関係ありません。DB に複数のアクションを適用する場合 (通常は複数のテーブルに適用する必要はありませんが、必ずしもそうではありません)、それらのいずれかの失敗が何らかの矛盾した状態を引き起こす場合、トランザクションが必要です。失敗したアクションは、それに続くアクションの必要条件を確立することになっていました (たとえば、次のアクションによって挿入される他のレコードの親になる新しいレコードの挿入に失敗した場合)。したがって、そのような場合、関連するアクションがすべて成功した場合にのみ適用することを保証する必要があります。または、失敗した場合は、以前に実行されたすべての関連するアクションをロールバックして、そのようなアクションの最初の前に存在していた初期状態に戻します。処刑された