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