2009-06-06 15 views
12

एकाधिक डेटाबेस में रेफरेंसियल अखंडता रखने के लिए सर्वोत्तम प्रथाएं क्या हैं? चूंकि कोई अंतर्निहित फ़ंक्शन नहीं हैएकाधिक डेटाबेस में रेफरेंसियल अखंडता रखते हुए

या क्या यह एक डेटाबेस को विभाजित करना बेहतर है?

अद्यतन केविन के देखें नीचे दिए गए उदाहरण। मेरी स्थिति है। मेरे इन्वेंट्री डेटाबेस में टेबल हैं जो कर्मचारी डेटाबेस में कर्मचारी आईडी का संदर्भ देते हैं।

ये डेटाबेस वर्तमान में विभिन्न स्थानों (विभिन्न सर्वरों)

उत्तर

5

2k05/2k08 के साथ यह एक डेटाबेस को विभाजित करना निश्चित रूप से बेहतर है। आपके पास डेटा को संग्रहीत करने के सभी लाभ हैं जैसे कि यह एकाधिक डेटाबेस में है, जबकि एक ही डेटाबेस के कार्यों का उपयोग करने में सक्षम होने पर विदेशी कुंजी।

कहा जा रहा है कि, आपको सब कुछ एक डेटाबेस में नहीं रखना चाहिए। तार्किक रूप से जब समूह तालिकाओं एक साथ फिट नहीं होते हैं, तो मैं उन्हें सामान्य रूप से अपने डेटाबेस में अलग करता हूं। उदाहरण के लिए, मैं जरूरी नहीं कि ऑर्डर सिस्टम डेटाबेस और कर्मचारी प्रबंधन डेटाबेस को एक साथ जोड़ूं। मुझे लगता है कि ऐसा करने के कारण हो सकते हैं, लेकिन मुझे यकीन है कि आपको उचित रूप से डेटा स्टोर्स को अलग-अलग अलग करने का मेरा मुद्दा मिल जाएगा।

आपको क्या देखना चाहिए कि दो डेटाबेस कितने इंटरैक्ट करते हैं। यदि ऐसे कई क्षेत्र हैं जो डेटाबेस में शामिल होंगे, तो मैं कहूंगा कि यह शायद एक अच्छा विचार है। यदि यह कर्मचारी तालिका से जुड़ा एक या दो फ़ील्ड हो सकता है, तो हो सकता है कि यह करने योग्य नहीं हो। आपका दूसरा विकल्प यह है कि यदि जुड़ने की संख्या छोटी है, तो सूची तालिका में आवश्यक तालिकाओं को डुप्लिकेट करना है, खासकर अगर यह एक टेबल है और दो मौजूदा डेटाबेस बड़े और जटिल हैं।

+0

मेरी स्थिति है। मेरे इन्वेंट्री डेटाबेस में टेबल हैं जो कर्मचारी डेटाबेस में कर्मचारी आईडी का संदर्भ देते हैं। ये डेटाबेस वर्तमान में विभिन्न स्थानों (विभिन्न सर्वर) पर बनाए रखा जाता है –

0

मैं इसे अपनी आवश्यकताओं पर निर्भर करता है लगता है में रखा जाता है, लेकिन मैं शायद एक एकल डाटाबेस की ओर झुक चाहते हैं। इसे बहुभाषी डेटाबेस में करने के लिए आपको वितरित लेनदेन समर्थन की आवश्यकता है।

1

एक डीबी में विभाजन के लिए निश्चित रूप से बेहतर है। यदि आपको ऐसा करने की आवश्यकता है तो ट्रिगर्स (यक) की मदद करेंगे। क्या आप इसके बजाय स्कीमा का उपयोग करके डीबी को विभाजित नहीं कर सकते हैं (एडवेंचरवर्क्स नमूना डीबी एक उदाहरण है)?

0

आप नौकरी करने के लिए ट्रिगर का उपयोग कर सकते हैं लेकिन ....
मुझे डर है कि आप यह सुनिश्चित करने में काफी समय व्यतीत करेंगे कि सबकुछ काम करता है। कुछ विभाजित तालिकाओं वाला एक डेटाबेस बेहतर हो सकता है। क्या आपको वास्तव में कई डेटाबेस या केवल एक डेटाबेस की आवश्यकता है जिसमें कई फाइल समूह भौतिक उपकरणों पर फैले हुए हैं? आप उस विकल्प पर भी विचार कर सकते हैं। मतेज

संबंधित मुद्दे