2017-04-18 18 views
6

मैं एक माइस्क्ल पृष्ठभूमि से आया हूं और अब मैं पाउचडब का उपयोग कर रहा हूं। मैं 1 डेटाबेस और प्रति ऐप के कई टेबल होने के एसक्यूएल पैटर्न में उपयोग किया जाता हूं।एक ही एप्लिकेशन पर एकाधिक पाउच डीबी डेटाबेस बना रहा है जिसे खराब डिजाइन माना जाता है?

पाउच डीबी में यह अलग है, क्योंकि डेटा तालिकाओं में नहीं बल्कि दस्तावेजों में संग्रहीत है। तो, मेरे एप्लिकेशन में, मैं कार्य, के साथ बनाया के लिए एक डेटाबेस है:

var db = new PouchDB('tasks', {revs_limit: 1, auto_compaction: true}); 

यह मेरा आवेदन के लिए मुख्य डेटाबेस है, लेकिन अब मैं भी करने के लिए दुकान सेटिंग्स, जैसे कि "LAST_VISIT_DATE", "language_preference" के रूप में की जरूरत है और दूसरे।

  1. मैं केवल एक डाटाबेस बनाने चाहिए अलग डेटा उप वस्तुओं में
    सेट या मैं स्टोर करने के लिए इस डेटा वहाँ किसी भी कर रहे हैं विभिन्न डेटाबेस बना सकते हैं और उसके बाद की दुकान:


    तो, मैं 2 प्रश्न हैं दूसरे विकल्प पर कमी?

  2. मुझे अभी तक क्लाउडेंट या कॉचडब के साथ समन्वयित करने में नहीं मिला है, लेकिन मुझे भविष्य में करना होगा। अगर मेरे पास 2 डेटाबेस हैं (या अधिक) क्या यह सिंक प्रक्रिया को और अधिक जटिल, धीमा या बदतर बना देगा?
+0

नहीं, यह खराब डिजाइन नहीं है, असल में यह [जाने का तरीका] है (https://mail-archives.apache.org/mod_mbox/couchdb-user/201401.mbox/ <52CEB873.7080404 @ ironicdesign.com>) कोच डीबी के साथ। – user3405291

उत्तर

7

खराब डिजाइन माना जाता है उसी एप्लिकेशन पर एकाधिक पाउचडीबी डेटाबेस बना रहा है?

एक शब्द में: नहीं

लांग जवाब: CouchDB/PouchDB में डेटाबेस अनिवार्य रूप से स्वतंत्र हैं। और कुछ एप्लिकेशन डिज़ाइन को एकाधिक डेटाबेस की आवश्यकता होती है।

एक सैद्धांतिक ऑफ़लाइन-प्रथम/मोबाइल ऐप पर विचार करें जो एजेंट की बिक्री को ट्रैक करता है। इसमें इन्वेंट्री प्रबंधन उद्देश्यों के लिए एक डेटाबेस हो सकता है, जो केंद्रीय कोच डीबी सर्वर के साथ सिंक्रनाइज़ किया गया है।

यह एक एजेंट के साथ ग्राहक और बिक्री जानकारी के साथ प्रति-एजेंट डेटाबेस भी होगा।

पाउचडीबी ऐप को दोनों डेटाबेस की आवश्यकता होगी। और कॉच डीबी के डिजाइन के कारण, उन डेटा सेट को एक ही डेटाबेस में रखने के लिए कोई (आसान, सौदा) तरीका नहीं है, और एजेंट के रिकॉर्ड एक-दूसरे से अलग रखें।

कॉच डीबी/पाउचडीबी में डेटाबेस आरडीबीएमएस में डेटाबेस की तुलना में तालिकाओं की तरह हैं।

पाउचडीबी (जो कि कॉच डीबी पर लागू नहीं होता है) में अतिरिक्त डेटाबेस बनाने के लिए एकमात्र असली सीमित कारक है, यह है कि plugin के उपयोग के अलावा, अपने मौजूदा डेटाबेस को सूचीबद्ध करने का कोई आसान तरीका नहीं है। यह वास्तविक सीमा नहीं होने की आवश्यकता है - इसका मतलब यह है कि आपको याद रखना होगा कि आपने कौन से डेटाबेस बनाए हैं (आपको शायद प्रोग्रामिक रूप से यादृच्छिक रूप से नामित डेटाबेस नहीं बनाना चाहिए ... लेकिन शायद यह एक खराब डिज़ाइन होगा। -))

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