Я создаю приложение электронной коммерции с MySQL, но мне трудно найти решение, которое предотвращает следующие условия гонки:
Два пользователя одновременно оформляют заказ с одним и тем же предметомв их корзине.В магазине есть только один предмет, доступный для продажи.Один пользователь должен иметь возможность приобрести последний товар, а другой пользователь должен увидеть сообщение об ошибке, потому что товара нет в наличии.
Я использую счетчик товаров, чтобы отслеживать количество товаров винвентарь, поэтому я решил, что просто уменьшу элемент после обработки кредитной карты пользователя.
Я знаю о запросе SELECT...UPDATE
в MySQL, но я бы хотел избежать блокировки строк или таблиц - если это действительно лучший способ для приложения электронной коммерции решить эту проблему.
Мне также интересно услышать другие решения, кроме проверки / уменьшения счетчика предметов.