मैं मेरा ( बोली ) एक कस्टम SQL बिल्डर की readme फ़ाइल के आधार पर एक उत्तर प्रदान करेगा
(सादा पाठ इस प्रकार है, हटाए गए पुस्तकालय-विशिष्ट संदर्भ)
आवश्यकताएँ
- कई DB विक्रेताओं (जैसे। MySQL, PostgreSQL, SQLite, MS SQL / SQL Server, Oracle, DB2, ..) का समर्थन करें।
- आसानी से नए डीबी तक विस्तारित (अधिमानतः, कार्यान्वयन-स्वतंत्र, कॉन्फ़िगर सेटिंग के माध्यम से)
- प्रतिरूपकता और कार्यान्वयन-स्वतंत्र हस्तांतरणीयता
- लचीला और सहज एपीआई
विशेषताएं
- व्याकरण-आधारित टेम्पलेट
- कस्टम नरम विचारों का समर्थन करते हैं
- DB अमूर्तता, प्रतिरूपकता और हस्तांतरणीयता
- तैयार किए गए टेम्प्लेट
- डेटा बच रहा है
मुझे लगता है कि उपरोक्त सुविधाओं और आवश्यकताओं के कारण स्केच एक एसक्यूएल अमूर्त बिल्डर का उपयोग करेगा
उपरोक्त सुविधाओं में से अधिकांश एसक्यूएल बिल्डरों द्वारा समर्थित हैं (हालांकि मुझे नहीं लगता कि सभी सूचीबद्ध मेरे ज्ञान के लिए समर्थित हैं)
उपयोग के मामले उदाहरण:
- CMS मंच कई DB विक्रेताओं के साथ काम करने में सक्षम है (अंतर्निहित कोड के परिवर्तन नहीं)
- कस्टम एप्लिकेशन कोड जहां DB विक्रेता को बदलने के लिए उपयुक्त है और / या dB स्कीमा गतिशील हैं (इसका मतलब है कि कई प्रश्नों को हार्ड-कोडित नहीं किया जा सकता है लेकिन फिर भी पर्याप्त सार करने की आवश्यकता है इसलिए कोड परिवर्तन के लिए मजबूत है)
- उत्पादन में प्रयुक्त एक से अधिक DB के साथ प्रोटोटाइप (कुछ कोड के लिए कम से कम डुप्लिकेट कोड आधार की आवश्यकता होगी)
- एप्लिकेशन कोड कसकर युग्मित नहीं है विशिष्ट DB प्रदाता और / या कार्यान्वयन लिए (यहां तक कि एक ही DB विक्रेता, जैसे DB विक्रेता के विभिन्न संस्करण), इस प्रकार अधिक मजबूत, लचीला और मॉड्यूलर है
- प्रश्नों और डेटा से बचने के कई सामान्य मामलों को फ्रेमवर्क द्वारा ही नियंत्रित किया जाता है और सामान्य रूप से यह इष्टतम और तेज दोनों है
फाइनली, मेरे पास उपयोग किए जाने वाले केस का एक उदाहरण है। मैं एक ऐसे एप्लिकेशन का निर्माण कर रहा था जहाँ अंतर्निहित DB स्कीमा (वर्डप्रेस) उस प्रकार के डेटा प्रश्नों के लिए अच्छी तरह से अनुकूल नहीं था जिन्हें करने की आवश्यकता थी, साथ ही कुछ WP तालिकाओं (जैसे पोस्ट) का उपयोग किया जाना था (इसलिए पूरी तरह से नई तालिकाएँ होना सभी एप्लिकेशन डेटा के लिए एक विकल्प नहीं था)।
उस मामले में एक एमवीसी जैसा आवेदन करने में सक्षम होने के कारण जहां मॉडल को कस्टम / डायनामिक स्थितियों द्वारा क्वेरी किया जा सकता है, जिससे क्वेरी को लगभग एक दुःस्वप्न के रूप में हार्ड-कोडिंग किया जा सकता है। कल्पना करें कि जुड़वाओं के साथ 2-3 टेबल तक का समर्थन करना संभव है और शर्तों को छानने के लिए कि किस तालिका को किसके साथ जुड़ना है और साथ ही आवश्यक एलियास का ख्याल रखना है।
स्पष्ट रूप से यह एक क्वेरी अमूर्त उपयोग-मामला था और इससे भी अधिक, इसे आवश्यक (या कम से कम बहुत फायदा हुआ) कस्टम सॉफ्ट व्यू को परिभाषित करने की क्षमता रखने (शामिल तालिकाओं का एक समूह जैसे कि वे एक कस्टम तालिका मॉडल के लिए उपयुक्त थे) । तब यह बहुत आसान था, क्लीनर, मॉड्यूलर और लचीला। एक अन्य पहलू में, एप्लिकेशन (कोड) ने क्वेरी एब्स्ट्रेक्शन लेयर का उपयोग एक (db स्कीमा) सामान्यीकरण उपकरण के रूप में किया। जैसा कि कुछ कहते हैं, यह भविष्य का प्रमाण था ।
यदि, कल, लोग तय करते हैं कि उन्हें कुछ अतिरिक्त विकल्पों या डेटा की आवश्यकता है, तो जोड़े में मॉडल को जोड़ना और ठीक काम करना बहुत आसान है। अतिरिक्त, अगर, टोमोरो, लोग तय करते हैं कि वे अब वर्डप्रेस का उपयोग नहीं करना चाहते हैं (जैसा कि एक प्लगइन के रूप में एप्लिकेशन को शिथिल-युग्मित किया गया है), इसे बदलना अपेक्षाकृत आसान है ( बस परिभाषा एक जोड़ी लाइनों में मॉडल ) कोड को नए स्कीमा के अनुकूल बनाने के लिए।
देखो मेरा मतलब है?