【发布时间】:2011-07-04 12:09:45
【问题描述】:
我正在构建一个售票应用程序,用于跟踪门票库存,并在特定门票售罄时停用它们。
我想知道在中途放弃订单时将库存放回商店的最佳做法是什么。
当前流程:
- 用户将
items添加到order为line_items,并且order被标记为成功支付完成 -
items有一个quantity_available,它是根据他们的line_items更新的 - 我定期扫描
orders,超过 20 分钟没有任何操作,删除这些订单的line_items 并更新quantity_available
感觉好像我错过了一些东西。一方面,我失去了详细查看放弃订单的能力(我仍然有任何付款/拒绝等......但没有订单项)。如果用户在 21 分钟后尝试恢复旧订单,他们将不得不重新开始。
相反,它会占用 20 分钟的库存,这可能会在节目快售罄时失去我们的销售。
任何见解将不胜感激。谢谢。
【问题讨论】:
-
作为后续:我考虑在运行时计算
line_items以获得当前可用的库存as discussed here。对我来说,似乎需要对每笔交易执行该查询会很慢,并且缓存数量会更好。不过,我很可能是错的。 -
很难避免这种情况,但是我会存储每个预订/购买,当有人注册时,你会检查 count(r+p) 与
quantity_available(永远不应该调整)。如果您不这样做,您可能会遇到某些脚本/流程调整了数字但您看不到原因的情况 - 这可能导致过度/不足销售。仅供参考,我运行了几个这样的软件系统,并没有遇到“如果有人想要它但其他人保留它并且不使用它怎么办”的情况 - 但是(虽然我也担心它)
标签: database-design ticket-system inventory