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