[英]How to control updates to product count?
我有一個名為 products 的表,其中包含一個名為 product_count 的字段,它告訴我們我們擁有的產品類型的數量。
當不同用戶同時發生多個更新時,我需要管理產品數量。
例如考慮當 4 個用戶嘗試購買相同的產品但數據庫只剩下一個產品。 現在我們的 API 有 4 個請求來購買產品,我想確保只有一個用戶會得到產品,因為我們在 db 中只剩下一種產品。 我們應該使用哪種技術來實現這一目標?
我正在使用 Java、Spring Boot 和 MYSQL 數據庫。
更新股票時,運行如下查詢:
update products set stock = stock - 1 where id = xxx and stock >= 1;
並且這條sql會返回受影響的行數,如果成功,則結果為1,如果庫存不足,則該sql的結果為0,您將知道該用戶購買失敗。
這是在數據庫級別實現的。 RDBMS 實現 ACID。 在后端級別(Spring boot),您實現購買操作(@Repository / @Query)和庫存檢查的異常處理(@ExceptionHandler)(例如“產品不可用”)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.