आप मान रहे हैं कि सत्र भंडारण और डेटाबेस संग्रहण अनन्य हैं। वे नहीं कर रहे हैं लेकिन चलो मान लेते हैं कि वे हैं।
सत्र संग्रहण का लाभ तीन गुना है:
- डेटाबेस में डेटा को स्पष्ट रूप से सम्मिलित करने की आवश्यकता नहीं है। आप बस एक सत्र चर सेट और आप कर रहे हैं। कार्यात्मक रूप से सरल और कम-जोखिम।
- उपयोगकर्ता की यात्रा और शॉपिंग कार्ट के जीवन चक्र को प्रबंधित करने की आवश्यकता नहीं है क्योंकि कंटेनर / फ्रेमवर्क आपके लिए ऐसा करते हैं
- आमतौर पर पुराने निष्क्रिय सत्रों का ऑटो-सफाई आपके लिए किया जाता है।
सत्र भंडारण के नुकसान:
- सत्र आत्मीयता, जब तक आप प्रतिकृति की जांच नहीं करते
- कोई विफलता नहीं, जब तक आप डिस्क पर सत्र राज्य की प्रतिकृति या मैनुअल दृढ़ता की जांच नहीं करते, जो जटिल हो सकती है।
- सभी सत्रों को स्मृति में संग्रहीत किया जाना चाहिए। यदि आप प्रतिकृति नियुक्त करते हैं तो यह प्रवर्धित है।
डेटाबेस संग्रहण के लाभ:
- सत्र आत्मीयता या राज्य प्रतिकृति के बारे में चिंता करने की आवश्यकता नहीं है। आप सभी अनुरोधों को राउंड-रॉबिन कर सकते हैं।
- आवेदन में कम स्मृति उपरि।
- यदि आदेश पूरा हो गया है, तो डेटाबेस में सब कुछ वैसे भी समाप्त हो जाता है, इसलिए यह पूरा करना आसान बना सकता है क्योंकि डेटा पहले से मौजूद है।
डेटाबेस संग्रहण के नुकसान:
- परित्यक्त गाड़ियां - कुछ अनाम उपयोगकर्ता ने अपनी खरीदारी कार्ट में एक आइटम जोड़ा और गायब हो गए। जब तक आपके पास किसी प्रकार की समाप्ति प्रक्रिया नहीं होती है, तब तक डेटा हमेशा के लिए चिपक जाता है।
- आपको उपयोगकर्ताओं को ट्रैक करने और किसी दिए गए अनुरोध के लिए यह पता लगाने का एक तरीका है कि यह मौजूदा या नए ब्राउज़िंग सत्र का प्रतिनिधित्व करता है। (हाँ, यदि आप कुकी का उपयोग करते हैं, तो यह संभवतः आसान है, लेकिन आप दो उपयोगकर्ताओं को एक ही आईडी के साथ अंत तक कैसे सुनिश्चित करते हैं?)।
- अधिक कोड
आपने उल्लेख नहीं किया कि आप किस मंच का उपयोग कर रहे हैं। मैं एक ऐसे दृष्टिकोण की तलाश करूंगा जो डेटाबेस-समर्थित सत्र का उपयोग करता है जहां सत्र डेटा केवल एक अनुरोध / प्रतिक्रिया चक्र के जीवन के दौरान स्मृति में मौजूद है, इसे डेटाबेस से लोड करना और डेटाबेस में वापस सहेजना है। इसने अतीत में मेरी अच्छी सेवा की है।
डेटाबेस-समर्थित सत्र के लाभ:
- सर्वर आत्मीयता के लिए कोई ज़रूरत नहीं है।
- ऐप सर्वर मेमोरी पर आसान
- निष्क्रिय / परित्यक्त सत्र डेटा आपके लिए साफ़ किया जाता है।
- उपयोगकर्ता का जीवनचक्र पहली यात्रा, बार-बार आना, सत्र समाप्त होना यह सब आपके लिए है।
- कोड करने के लिए आसान है
डेटाबेस-समर्थित सत्र का नुकसान:
- कॉन्फ़िगरेशन - आपको अपने कंटेनर की जांच करने की आवश्यकता है, चाहे वह PHP, जावा ईई (टॉमकैट, जेट्टी, जेबॉस, आदि), नोड.जेएस + एक्सप्रेस.जेएस या व्हाट्सएप इसका समर्थन करते हैं और सही कॉन्फ़िगरेशन की आपूर्ति करते हैं।
- जब से आप प्रति अनुरोध 2 डेटाबेस ऑपरेशन जोड़ रहे हैं, तब आपको इसे लोड करने की आवश्यकता हो सकती है।
एक तीसरी संभावना है, जिसे पहले किसी ने छुआ था। आप पूरी तरह से सत्र का उपयोग छोड़ सकते हैं और कुकी या HTML स्थानीय भंडारण में सब कुछ एम्बेड करके क्लाइंट-साइड स्टोरेज का उपयोग कर सकते हैं।
मैं आपके लिए एक अभ्यास के रूप में इसके पेशेवरों / विपक्षों को छोड़ दूंगा, लेकिन मैं आपको संकेत दे दूंगा कि html5 भंडारण के लिए, ब्राउज़र की संगतता सावधानीपूर्वक समीक्षा करने के लिए कुछ हो सकती है।
मैंने आपके लिए तथ्यों को रेखांकित किया है। उम्मीद है कि यह आपकी स्थिति के लिए सही निर्णय लेने में मदद करता है।