जवाबों:
ओह, कई मतभेद हैं जिन पर आपको विचार करना होगा
चयन के लिए दृश्य:
प्रविष्टि / अपडेट के लिए दृश्य:
कमियां
दृश्य कर सकते हैं:
और आपको विचारों से मिलान करने के लिए तालिकाओं को डिज़ाइन नहीं करना चाहिए । आपके आधार मॉडल को डेटा के कुशल भंडारण और पुनर्प्राप्ति के साथ ही चिंता करनी चाहिए। दृश्य आंशिक रूप से एक उपकरण है जो एक जटिल, सामान्यीकृत मॉडल से उत्पन्न होने वाली जटिलताओं को कम करता है, जिससे आप उस जटिलता को समाप्त कर सकते हैं।
इसके अलावा, यह पूछना कि "एक मेज पर एक दृश्य का उपयोग करने के फायदे क्या हैं?" एक महान तुलना नहीं है। आप तालिकाओं के बिना नहीं जा सकते, लेकिन आप बिना विचारों के कर सकते हैं। वे प्रत्येक बहुत अलग कारण से मौजूद हैं। तालिकाएँ ठोस मॉडल हैं और दृश्य एक सार, अच्छा, दृश्य हैं।
जब आपको यह सुनिश्चित करने की आवश्यकता होती है कि हर बार जटिल तर्क का पालन किया जाता है, तो दृश्य स्वीकार्य हैं। उदाहरण के लिए, हमारे पास एक दृश्य है जो सभी वित्तीय रिपोर्टिंग के लिए आवश्यक कच्चा डेटा बनाता है। सभी रिपोर्ट्स इस दृश्य का उपयोग करके, सभी लोग एक ही डेटा सेट से काम कर रहे हैं, बजाय एक रिपोर्ट के एक सेट का उपयोग करके और दूसरा एक का उपयोग करने के लिए भूल जाता है जो अलग-अलग परिणाम देता है।
जब आप उपयोगकर्ताओं को डेटा के किसी विशेष सबसेट पर प्रतिबंधित करना चाहते हैं तो दृश्य स्वीकार्य होते हैं। उदाहरण के लिए, यदि आप रिकॉर्ड नहीं हटाते हैं, लेकिन केवल वर्तमान को सक्रिय के रूप में चिह्नित करते हैं और पुराने संस्करणों को निष्क्रिय के रूप में, आप केवल सक्रिय रिकॉर्ड का चयन करने के लिए उपयोग करने के लिए एक दृश्य चाहते हैं। यह लोगों को भूल जाने से रोकता है कि क्लॉज में क्लॉज कहां रखा जाए और खराब परिणाम मिले।
दृश्य का उपयोग यह सुनिश्चित करने के लिए किया जा सकता है कि उपयोगकर्ताओं के पास केवल रिकॉर्ड के एक सेट तक पहुंच है - उदाहरण के लिए, किसी विशेष क्लाइंट के लिए तालिकाओं का दृश्य और तालिकाओं पर कोई सुरक्षा अधिकार का मतलब नहीं हो सकता है कि उस ग्राहक के लिए उपयोगकर्ता केवल कभी डेटा देख सकते हैं उस ग्राहक के लिए।
डेटाबेस को रीफ्रैक्ट करने पर व्यू बहुत मददगार होते हैं।
जब आप विचारों को कॉल करने के लिए विचारों का उपयोग करते हैं तो दृश्य स्वीकार्य नहीं होते हैं जिसके परिणामस्वरूप भयानक प्रदर्शन हो सकता है (कम से कम SQL सर्वर में)। हमने लगभग एक मल्टीमिलीयन डॉलर क्लाइंट खो दिया क्योंकि किसी ने डेटाबेस को एब्सट्रैक्ट करने के लिए चुना था, जिस तरह से और प्रदर्शन भयावह था और बार-बार टाइमआउट होता था। हमें फिक्स के लिए भी भुगतान करना था, क्लाइंट को नहीं, क्योंकि प्रदर्शन का मुद्दा पूरी तरह से हमारी गलती थी। जब दृश्य कॉल दृश्य होते हैं, तो उन्हें अंतर्निहित दृश्य को पूरी तरह से उत्पन्न करना होगा। मैंने इसे देखा है, जहां दृश्य को एक दृश्य कहा जाता है, जिसे एक दृश्य कहा जाता है और उपयोगकर्ता के तीनों को देखने के लिए लाखों रिकॉर्ड बनाए गए थे ताकि अंततः इसकी आवश्यकता हो। मुझे याद है कि इनमें से एक दृश्य को रिकॉर्ड्स की एक साधारण गणना (*) करने में 8 मिनट का समय लगा था। दृश्य कॉलिंग दृश्य एक बेहद खराब विचार है।
रिकॉर्ड को अद्यतन करने के लिए उपयोग करने के लिए दृश्य अक्सर एक बुरा विचार होते हैं क्योंकि आमतौर पर आप केवल उसी तालिका से फ़ील्ड्स को अपडेट कर सकते हैं (फिर से यह SQL सर्वर है, अन्य डेटाबेस भिन्न हो सकते हैं)। यदि ऐसा है, तो यह वैसे भी टेबल को सीधे अपडेट करने के लिए अधिक समझ में आता है ताकि आप जान सकें कि कौन से क्षेत्र उपलब्ध हैं।
जब आपको कई तालिकाओं से चयन करने की आवश्यकता होती है, या किसी तालिका का सबसेट प्राप्त करने के लिए दृश्य आसान होते हैं।
आपको अपनी तालिकाओं को इस तरह से डिजाइन करना चाहिए कि आपका डेटाबेस अच्छी तरह से सामान्यीकृत हो (न्यूनतम दोहराव)। यह क्वेरी को कुछ हद तक कठिन बना सकता है।
दृश्य जुदाई का एक सा है, तो आप करने के लिए अनुमति नहीं है देखने को अलग ढंग से टेबलों में डेटा की तुलना में वे जमा हो जाती है।
आपको विचारों पर विचार किए बिना अपनी तालिका डिज़ाइन करनी चाहिए।
जुड़ने और शर्तों को बचाने के अलावा, दृश्य का प्रदर्शन लाभ होता है: SQL सर्वर इसकी निष्पादन योजना की गणना कर सकता है और दृश्य में सहेज सकता है, और इसलिए इसे "मक्खी पर" SQL कथनों से तेज बनाता है।
फ़ील्ड स्तर पर उपयोगकर्ता की पहुँच से संबंधित आपके काम को आसानी से देख सकते हैं।
सबसे पहले, जैसा कि नाम से पता चलता है कि यह अपरिवर्तनीय है। क्योंकि दृश्य डीबी में एक संग्रहीत क्वेरी से बनाई गई आभासी तालिका के अलावा और कुछ नहीं है। इस वजह से आपके पास विचारों की कुछ विशेषताएं हैं:
इसलिए ऐसे गजलों के उपयोग के मामले हैं जिनके लिए तालिकाओं की तुलना में विचार बेहतर हैं, केवल एक वेबसाइट पर सक्रिय उपयोगकर्ताओं को प्रदर्शित करने के बारे में सोचें। एक दृश्य बेहतर होगा क्योंकि आप केवल उस डेटा के सबसेट पर काम करते हैं जो वास्तव में आपके DB (सक्रिय और निष्क्रिय उपयोगकर्ताओं) में है
इस लेख को देखें
उम्मीद है कि इस मदद की ..
विकिपीडिया के अनुसार ,
दृश्य बाहरी दुनिया में अंतर्निहित तालिकाओं के संपर्क की डिग्री को सीमित कर सकते हैं: किसी दिए गए उपयोगकर्ता को दृश्य को क्वेरी करने की अनुमति हो सकती है, जबकि शेष आधार तालिका तक पहुंच से वंचित।
दृश्य एक ही आभासी तालिका में कई तालिकाओं को जोड़ और सरल कर सकते हैं ।
दृश्य कुल तालिकाओं के रूप में कार्य कर सकते हैं , जहां डेटाबेस इंजन डेटा (योग, औसत, आदि) को एकत्र करता है और गणना किए गए परिणामों को डेटा के भाग के रूप में प्रस्तुत करता है।
दृश्य डेटा की जटिलता को छिपा सकते हैं । उदाहरण के लिए, एक दृश्य Sales2000 या Sales2001 के रूप में प्रकट हो सकता है, वास्तविक अंतर्निहित तालिका को पारदर्शी रूप से विभाजित कर सकता है।
दृश्य संग्रह करने के लिए बहुत कम जगह लेते हैं ; डेटाबेस में केवल एक दृश्य की परिभाषा होती है, न कि सभी डेटा की एक प्रति जो वह प्रस्तुत करता है।
उपयोग किए गए SQL इंजन के आधार पर दृश्य अतिरिक्त सुरक्षा प्रदान कर सकते हैं ।