मैंने यह उत्तर लगभग चार साल पहले लिखा था और मेरी राय नहीं बदली है। लेकिन तब से सूक्ष्म सेवाओं के मोर्चे पर महत्वपूर्ण विकास हुए हैं। मैंने अंत में सूक्ष्म सेवाओं के विशिष्ट नोट्स जोड़े ...
मैं अपने वोट का बैकअप लेने के लिए वास्तविक दुनिया के अनुभव के साथ, इस विचार के खिलाफ जाऊंगा।
मुझे एक बड़े एप्लिकेशन पर लाया गया था जिसमें एक ही डेटाबेस के लिए पांच संदर्भ थे। अंत में, हमने एक संदर्भ को छोड़कर सभी संदर्भों को हटा दिया - एक ही संदर्भ में वापस लौटना।
पहले कई संदर्भों का विचार एक अच्छा विचार लगता है। हम अपने डेटा एक्सेस को डोमेन में अलग कर सकते हैं और कई स्वच्छ हल्के संदर्भ प्रदान कर सकते हैं। डीडीडी की तरह लगता है, है ना? यह हमारे डेटा एक्सेस को सरल करेगा। एक और तर्क प्रदर्शन के लिए है कि हम केवल उस संदर्भ तक पहुंचते हैं जो हमें चाहिए।
लेकिन व्यवहार में, जैसे-जैसे हमारा आवेदन बढ़ता गया, हमारी कई तालिकाओं ने हमारे विभिन्न संदर्भों में रिश्तों को साझा किया। उदाहरण के लिए, संदर्भ 1 में तालिका ए के लिए प्रश्न भी संदर्भ 2 में तालिका बी में शामिल होने की आवश्यकता है।
इसने हमें कुछ गरीब विकल्पों के साथ छोड़ दिया। हम विभिन्न संदर्भों में तालिकाओं की नकल कर सकते हैं। हमने यह कोशिश की। इससे ईएफ बाधा सहित कई मानचित्रण समस्याएं पैदा हुईं जिनके लिए प्रत्येक इकाई को एक विशिष्ट नाम की आवश्यकता होती है। इसलिए हम अलग-अलग संदर्भों में पर्सन 1 और पर्सन 2 नाम की संस्थाओं के साथ समाप्त हो गए। कोई यह तर्क दे सकता है कि यह हमारी ओर से खराब डिजाइन था, लेकिन हमारे सर्वश्रेष्ठ प्रयासों के बावजूद, यह वास्तव में वास्तविक दुनिया में हमारे आवेदन में वृद्धि हुई।
हमने उस डेटा को प्राप्त करने के लिए दोनों संदर्भों की क्वेरी करने की भी कोशिश की, जिसकी हमें ज़रूरत थी। उदाहरण के लिए, हमारे व्यावसायिक तर्क में संदर्भ 1 से आवश्यक आधा हिस्सा होगा और संदर्भ 2 से अन्य आधा। यह कुछ प्रमुख मुद्दे थे। एक ही संदर्भ के खिलाफ एक क्वेरी करने के बजाय, हमें विभिन्न संदर्भों में कई प्रश्न करने थे। यह एक वास्तविक प्रदर्शन जुर्माना है।
अंत में, अच्छी खबर यह है कि कई संदर्भों को अलग करना आसान था। संदर्भ एक हल्के वस्तु होने का इरादा है। इसलिए मुझे नहीं लगता कि प्रदर्शन कई संदर्भों के लिए एक अच्छा तर्क है। लगभग सभी मामलों में, मेरा मानना है कि एक एकल संदर्भ सरल, कम जटिल है, और संभवतः बेहतर प्रदर्शन करेगा, और आपको इसे काम करने के लिए काम-के बारे में एक गुच्छा लागू नहीं करना होगा।
मैंने एक स्थिति के बारे में सोचा जहां कई संदर्भ उपयोगी हो सकते हैं। डेटाबेस के साथ एक भौतिक समस्या को ठीक करने के लिए एक अलग संदर्भ का उपयोग किया जा सकता है जिसमें वास्तव में एक से अधिक डोमेन होते हैं। आदर्श रूप में, एक संदर्भ एक डोमेन के लिए एक-से-एक होगा, जो एक डेटाबेस के लिए एक-से-एक होगा। दूसरे शब्दों में, यदि तालिका का एक सेट किसी भी डेटाबेस में अन्य तालिकाओं से संबंधित नहीं है, तो उन्हें संभवतः एक अलग डेटाबेस में निकाला जाना चाहिए। मुझे एहसास है कि यह हमेशा व्यावहारिक नहीं है। लेकिन अगर तालिकाओं का एक सेट इतना अलग है कि आप उन्हें एक अलग डेटाबेस में अलग करने में सहज महसूस करेंगे (लेकिन आप नहीं चुनते हैं) तो मैं एक अलग संदर्भ का उपयोग करने के लिए मामला देख सकता था, लेकिन केवल इसलिए कि वास्तव में दो अलग-अलग डोमेन हैं।
सूक्ष्म सेवाओं के संबंध में, एक एकल संदर्भ अभी भी समझ में आता है। हालाँकि, सूक्ष्म सेवाओं के लिए, प्रत्येक सेवा का अपना संदर्भ होता है जिसमें केवल उस सेवा से संबंधित डेटाबेस तालिकाएँ शामिल होती हैं। दूसरे शब्दों में, यदि सेवा x तालिकाओं 1 और 2 तक पहुंचता है, और सेवा y तालिकाओं 3 और 4 तक पहुंचती है, तो प्रत्येक सेवा का अपना विशिष्ट संदर्भ होगा, जिसमें उस सेवा के लिए विशिष्ट सारणी शामिल हैं।
मुझे आपके विचारों में दिलचस्पी है।