Saya hanya akan mengunci catatan produk (dengan pilih untuk pembaruan - perhatikan, pilih kunci dalam mode berbagi tidak akan memblokir pengguna lain untuk membeli produk yang sama) dan kemudian lakukan operasi lainnya. Dengan cara ini saya tidak akan memblokir pembelian produk lain (sementara mengunci tabel akan memblokir operasi penulisan apa pun, terlepas dari apakah ada untuk produk 1 atau produk 2)Dan mengapa Anda menyimpan properti max_product_can_sell alih-alih (atau tidak bersama) available_quantity properti?
Tergantung pada tingkat isolasi. Di serialisasi - ya, di level yang lebih rendah, saya hampir yakin, tidak.