संभव डुप्लिकेट:
लेखन वेब "सर्वर कम" अनुप्रयोग
तो, मान लें कि मैं एक स्टैक एक्सचेंज क्लोन बनाने जा रहा हूं और मैं अपने बैकएंड स्टोर के रूप में काउचडीबी जैसे कुछ का उपयोग करने का निर्णय लेता हूं। यदि मैं उनके अंतर्निहित प्रमाणीकरण और डेटाबेस-स्तरीय प्राधिकरण का उपयोग करता हूं, तो क्या क्लाइंट-साइड जावास्क्रिप्ट को सार्वजनिक रूप से उपलब्ध CouchDB सर्वर पर सीधे लिखने की अनुमति देने का कोई कारण नहीं है? चूँकि यह मूल रूप से एक CRUD एप्लीकेशन है और व्यापारिक तर्क में "केवल लेखक ही अपने पद को संपादित कर सकते हैं" मैं क्लाइंट-साइड सामान और डेटाबेस के बीच एक परत होने की ज्यादा जरूरत नहीं देखता। मैं बस CouchDB पक्ष पर सत्यापन का उपयोग करूँगा यह सुनिश्चित करने के लिए कि कोई व्यक्ति कचरा डेटा में नहीं डाल रहा है और सुनिश्चित करें कि अनुमतियाँ ठीक से सेट की गई हैं ताकि उपयोगकर्ता केवल अपना स्वयं का _user डेटा पढ़ सकें। रेंडर एंगुलरजेएस जैसी किसी चीज द्वारा क्लाइंट-साइड किया जाएगा। संक्षेप में आप बस एक CouchDB सर्वर और "स्थिर" पृष्ठों का एक गुच्छा हो सकता है और आप जाने के लिए अच्छा कर रहे हैं। आपको किसी भी तरह के सर्वर-साइड प्रसंस्करण की आवश्यकता नहीं होगी, बस कुछ ऐसा जो HTML पृष्ठों को पूरा कर सके।
दुनिया के लिए मेरा डेटाबेस खोलना गलत लगता है, लेकिन इस परिदृश्य में मैं यह नहीं सोच सकता कि जब तक अनुमतियाँ ठीक से सेट न हों। यह एक वेब डेवलपर के रूप में मेरी वृत्ति के खिलाफ जाता है, लेकिन मैं एक अच्छे कारण के बारे में नहीं सोच सकता। तो, यह एक बुरा विचार क्यों है?
संपादित करें: ऐसा लगता है कि यहां एक समान चर्चा है: लेखन वेब "सर्वर कम" अनुप्रयोग
संपादित करें: बहुत बढ़िया चर्चा अब तक, और मैं हर किसी की प्रतिक्रिया की सराहना करता हूं! मुझे ऐसा लगता है कि मुझे CouchDB और AngularJS को विशेष रूप से कॉल करने के बजाय कुछ सामान्य मान्यताओं को जोड़ना चाहिए। तो चलिए मान लेते हैं कि:
- डेटाबेस उपयोगकर्ताओं को सीधे अपने छिपे हुए स्टोर से प्रमाणित कर सकता है
- सभी डेटाबेस संचार SSL पर होगा
- डेटा सत्यापन डेटाबेस द्वारा नियंत्रित किया जा सकता है (लेकिन शायद नहीं करना चाहिए?)
- एकमात्र प्राधिकरण जिसे हम व्यवस्थापक कार्यों के अलावा अन्य के बारे में परवाह करते हैं, किसी को केवल अपने स्वयं के पोस्ट को संपादित करने की अनुमति दी जा रही है
- हम सभी डेटा को पढ़ने में सक्षम होने के साथ पूरी तरह से ठीक हैं (EXCEPT उपयोगकर्ता रिकॉर्ड जिसमें पासवर्ड हैश हो सकते हैं)
- डेटाबेस प्राधिकरण द्वारा प्रशासनिक कार्यों को प्रतिबंधित किया जाएगा
- कोई भी खुद को व्यवस्थापक की भूमिका में नहीं जोड़ सकता है
- डेटाबेस को स्केल करना अपेक्षाकृत आसान है
- कोई भी सच्चा व्यावसायिक तर्क नहीं है; यह एक बुनियादी CRUD ऐप है
DELETE FROM ImportantData;