CodeWriteson Şöyle bir senaryo olabilir:
+-------+------------+
| stock | used_stock |
+-------+------------+
| 10 | 2 |
+-------+------------+
Burada mevcut stok stock - used_stock olmuş oluyor.
Şu an 8 adet daha stokta var. 2 tanesine sipariş verilmiş. Bir kişi daha sipariş verdi, 5 tane aldı, stokta 3 tane kaldı: used_stock = used_stock + 5
+-------+------------+
| stock | used_stock |
+-------+------------+
| 10 | 7 |
+-------+------------+
Stok yenilemesi yapıldı ve stok tekrar 10 adet var şeklinde güncellendi. Bu durumda used_stock = GREATEST(used_stock - stock, 0) olur. Yani:
+-------+------------+
| stock | used_stock |
+-------+------------+
| 10 | 0 |
+-------+------------+
Sonra bir kişi sipariş verdi, 8 tane aldı, 2 adet stokta kaldı:
+-------+------------+
| stock | used_stock |
+-------+------------+
| 10 | 8 |
+-------+------------+
Stok yenilemesi yapıldı ama bu sefer elimizde 5 tane kaldı: stock = 5, used_stock = GREATEST(used_stock - 5, 0)
+-------+------------+
| stock | used_stock |
+-------+------------+
| 5 | 3 |
+-------+------------+
Bu sırada 2 adet ürün iade edildi ve satışa geri alındı: used_stock = GREATEST(used_stock - 2, 0)
+-------+------------+
| stock | used_stock |
+-------+------------+
| 5 | 1 |
+-------+------------+
Stok tekrar 10 olarak güncellendi: stock = 10, used_stock = GREATEST(used_stock - 10, 0)
+-------+------------+
| stock | used_stock |
+-------+------------+
| 10 | 0 |
+-------+------------+
Böyle bir yapı kurduğunuzda bir tane Rule oluşturup bu alanları kontrol ederek her bir ürün için anlık mevcut stok bilgisine ulaşabilirsiniz. Elbette bu hızlıca düşünülmüş basit bir yaklaşım.
Not: GREATEST(used_stock - 10, 0) demek used_stock - 10 < 0 ise 0 dön demek.