performance - यवस - हिंदी में डेटाबेस डिजाइन की प्रक्रिया




एक डेटाबेस या कई? (8)

मैं एक वेबसाइट विकसित कर रहा हूं जो कई संस्थाओं के लिए डेटा का प्रबंधन करेगा। संस्थाओं के बीच कोई डेटा साझा नहीं किया जाता है, लेकिन वे एक ही ग्राहक के स्वामित्व में हो सकते हैं। एक ग्राहक एक ही "डैशबोर्ड" से अपनी सारी संस्थाओं को प्रबंधित करना चाह सकता है तो क्या मैं सब कुछ के लिए एक डाटाबेस होना चाहिए, या अलग-अलग डाटा में अलग-अलग डेटा रखना चाहिए? क्या कोई सर्वोत्तम अभ्यास है? होने के लिए सकारात्मक / नकारात्मक क्या हैं:

  • संपूर्ण साइट के लिए डेटाबेस (इकाई का "ग्राहकआईडी" है, डेटा में "इकाईआईडी" है)
  • प्रत्येक ग्राहक के लिए डेटाबेस (डेटा "एंटआईआईडी" है)
  • प्रत्येक इकाई के लिए डेटाबेस (ग्राहक को डाटाबेस का संबंध डेटाबेस के बाहर है)

कई डेटाबेस ऐसा लगता है कि इसमें बेहतर प्रदर्शन (कम पंक्तियां और शामिल हों) हो लेकिन अंततः एक रखरखाव दुःस्वप्न बन सकता है


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


उन्हें अलग-अलग डाटाबेस में रखने के लिए एक अच्छा तर्क यह है कि इसकी आसानी से पैमाने पर (आप सर्वर के कई प्रतिष्ठानों के साथ सर्वर पर वितरित क्लाइंट डेटाबेस के साथ) आसानी से कर सकते हैं।

एक अन्य तर्क यह है कि एक बार जब आप लॉग इन हो जाते हैं, तो आपको अपने प्रत्येक प्रश्नों में एक अतिरिक्त ऐप जोड़ने की आवश्यकता नहीं है (क्लाइंट आईडी के लिए)

इसलिए, प्रत्येक ग्राहक के लिए कई डीबी द्वारा समर्थित एक मास्टर डीबी एक बेहतर दृष्टिकोण हो सकता है,


मुझे लगता है कि आपको सबसे यथार्थवादी परिदृश्य के साथ जाना होगा और जरूरी नहीं कि ग्राहक भविष्य में क्या करना चाहता है। यदि आप उस फीचर को बाज़ार में जा रहे हैं (यानी आपकी सभी संस्थाओं को एक डैशबोर्ड में देखकर), तो आपको या तो एक समाधान मिलना होगा (शायद कई डेटाबेस से डैशबोर्ड खींचें) या संपूर्ण ऐप के लिए एक एकल डेटाबेस का उपयोग करें।

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


मुझे लगता है कि बिना अधिक जानकारी के जवाब देना मुश्किल है

मैं एक डेटाबेस के पक्ष में झुकाव उचित रूप से कोडित व्यावसायिक ऑब्जेक्ट्स आपको क्लाइंट को भूलने से रोकना चाहिए I

आपके द्वारा उपयोग किए जा रहे डेटाबेस का प्रकार और यह कैसे तराजू आपको अपना निर्णय लेने में मदद कर सकता है

स्कीमा को सड़क के नीचे परिवर्तित करने के लिए, ऐसा लगता है कि एक डाटाबेस रखरखाव के परिप्रेक्ष्य से आसान होगा - आपके पास उन्हें बनाने के लिए एक जगह है।


निजी तौर पर, मैं अलग-अलग डेटाबेस पसंद करता हूं, विशेष रूप से प्रत्येक इकाई के लिए डेटाबेस। मैं निम्नलिखित कारणों से इस दृष्टिकोण को पसंद करता हूं:

  1. प्रश्नों के बारे में छोटे = तेज
  2. प्रश्न सरल होते हैं।
  3. किसी ग्राहक के डेटा को दूसरे में अकस्मात रूप से प्रदर्शित करने का कोई जोखिम नहीं।
  4. एक डाटाबेस एक प्रदर्शन बाधा उत्पन्न कर सकता है क्योंकि यह बड़ी हो जाती है (# संस्थाओं की बढ़ोतरी) आपको 1 इकाई के साथ क्षैतिज स्केलेबिलिटी में एक तरह का निर्माण मिलता है।
  5. ग्राहकों या संस्थाओं को हटाए जाने के बाद आसान डेटा साफ हो जाता है।

सुनिश्चित करें कि स्कीमा को अपग्रेड करने में अधिक समय लगेगा, लेकिन मेरे अनुभव संशोधनों में एक बार आप तैनात करते हैं और तुल्यकालन तुल्यकालित होते हैं।


इस लेख को Microsoft की साइट पर देखें मुझे लगता है कि मल्टी-टेनेंट डिज़ाइन से संबंधित विभिन्न लागतों और लाभों को बिछाने का अच्छा काम करता है I विकिपीडिया पर मल्टी टेनिन्सी लेख को भी देखें कई व्यापारिक नापसंद होते हैं और आपका सर्वश्रेष्ठ मैच बहुत ही निर्भर करता है कि आप किस प्रकार के उत्पाद विकसित कर रहे हैं।


क्या आप अपने कोड को कई वातावरणों में तैनात करने की योजना बना रहे हैं?

यदि हां, तो उसे एक डेटाबेस में रखने का प्रयास करें और सभी तालिका संदर्भों को कॉन्फ़िगरेशन फ़ाइल से एक नेमस्पेस के साथ प्रीफ़िक्स्ड करें।


एकल डेटाबेस विकल्प रखरखाव बहुत आसान बना देगा।







maintainability