Tôi sẽ chỉ khóa bản ghi sản phẩm (với chọn để cập nhật - lưu ý, chọn khóa ở chế độ chia sẻ sẽ không chặn người dùng khác mua cùng một sản phẩm) và sau đó thực hiện các thao tác còn lại. Bằng cách này, tôi sẽ không chặn mua các sản phẩm khác (trong khi khóa bảng sẽ chặn bất kỳ thao tác ghi nào, bất kể có cho sản phẩm 1 hay sản phẩm 2 hay không) Và tại sao bạn lại giữ thuộc tính max_product_can_sell thay vì (hoặc không cùng với) ready_quantity tài sản?
Phụ thuộc vào mức độ cách ly. Ở mức có thể nối tiếp - vâng, ở các cấp thấp hơn, tôi gần như chắc chắn là không.