मैं वर्तमान में PHP/MySQL के साथ एक ईकॉमर्स साइट बना रहा हूं। हाल ही में, मैं शॉपिंग कार्ट एकीकरण पर काम कर रहा हूं। ग्राहक यह सुनिश्चित करना चाहता था कि स्टॉक संभावित खरीदारों के लिए उपलब्ध था, इसलिए मैंने स्टॉक प्रबंधन प्रणाली बनाई। शॉपिंग कार्ट निम्नानुसार काम करता है:शॉपिंग कार्ट और स्टॉक प्रबंधन
- ग्राहक अपनी गाड़ी पर एक आइटम की मात्रा जोड़ता है।
- आइटम मात्रा डेटाबेस में उपलब्ध स्टॉक से आरक्षित है।
- कोई और आरक्षित स्टॉक खरीद सकता है।
- स्टॉक प्रक्रिया आदेश तक तब तक आरक्षित रहता है - जहां स्टॉक डेटाबेस से हटा दिया जाता है।
- यदि ग्राहक अपने कार्ट को छोड़ देता है, तो स्टॉक आरक्षित रहता है।
- यदि कोई अन्य ग्राहक कोई आइटम खरीदना चाहता है, लेकिन केवल उपलब्ध स्टॉक किसी अन्य ग्राहक द्वारा आरक्षित है, तो क्लाइंट आरक्षित स्टॉक चुरा सकता है यदि यह 20 मिनट के लिए निष्क्रिय है।
मेरा सवाल है, इस तरह के परिदृश्य के लिए सर्वोत्तम अभ्यास क्या हैं? क्या मैं यह सही ढंग से कर रहा हूँ? मुख्य बात यह है कि ग्राहक उस स्टॉक को बेचना नहीं चाहता जो उसके पास नहीं है।
मैं इस बात पर चर्चा करना चाहता हूं कि कार्यक्षमता में सुधार कैसे किया जाए, या अन्य इसे पूरा करने के लिए क्या कर रहे हैं।
सलाह के लिए धन्यवाद। मैं कार्यक्षमता को फिर से काम करने जा रहा हूं। मुझे पता था कि ऐसा करने के लिए यह सबसे अच्छा तरीका नहीं था। फ्रीजिंग स्टॉक शायद एक अच्छा विचार नहीं है, जब तक कि कॉन्सर्ट टिकट जैसे अद्वितीय उत्पाद बेचते हैं। – jgallant
हां, स्रोत नियंत्रण और डेटाबेस लेनदेन के साथ, आशावादी लॉकिंग के लिए डिफ़ॉल्ट जब तक कि आपके पास अन्यथा करने का कोई अच्छा कारण न हो। – Jerph