Как справиться с изменением цены в БД, только когда клиент размещает заказ онлайн? - PullRequest
1 голос
/ 18 августа 2011

У меня есть таблица базы данных Product с такими столбцами, как product_id, price и inventory_count.

. Пользователь нажимает кнопку, чтобы купить определенный продукт по определенной цене.Моя программа генерирует страницу подтверждения с указанием товара и цены.Все хорошо, и пользователь нажимает «Подтвердить».Моя программа обновляет inventory_count этого продукта и снимает с кредитной карты пользователя сумму, указанную в price.

продукта, но в течение времени после создания страницы подтверждения, но до того, как пользователь нажимает «Подтвердить»цена этого продукта была изменена.Таким образом, пользователь мог увидеть цену в 10 долларов на странице подтверждения, но после того, как он нажал «Подтвердить», значение price в таблице «Продукт» уже было изменено на 11 долларов, и это будет с него.

* 1013лучший способ справиться с такой ситуацией?Я использую MySQL и Python, если это актуально.

Ответы [ 3 ]

3 голосов
/ 18 августа 2011

Создайте новую таблицу для ожидающих покупок с ценой, которую вы намерены фактически взимать, и добавьте в нее элементы при создании страницы подтверждения.

Вычтите из Product таблицы inventory_count при добавлении элемента в таблицу Pending, затем вы можете повторно увеличить inventory_count, если покупка не прошла.

3 голосов
/ 18 августа 2011

Вы определенно должны перенести цену со времени, когда клиент последний раз имел возможность изменить свое мнение. Я уверен, что это также юридическая проблема, в которой ты выглядишь не очень хорошо.

Во всяком случае, не может быть сложно осуществить последнюю проверку после подтверждения клиента, верно? Может быть, тогда вы могли бы показать, что цена изменилась.

1 голос
/ 18 августа 2011

По моему мнению, вам следует избегать подобных ситуаций (если бы я был вашим клиентом, я бы разочаровался). Но если вы не можете, когда клиент нажимает подтвердить, сделайте последнюю проверку цены и покажите пользователю сообщение, если оно изменилось.

...