2009-01-28 14 views
17

मैं वास्तव में नहीं पूछ रहा हूँ कि मैं अपने आवेदन विन्यास की 100% के लिए या तो एक RDBMS या config फ़ाइलों का उपयोग करना चाहिए, बल्कि क्या तरह विन्यास की सबसे अच्छा प्रत्येक विधि द्वारा संबोधित किया जाता है।किसी फ़ाइल या डेटाबेस में कॉन्फ़िगरेशन?

उदाहरण के लिए, मैंने सुना है कि "विन्यास के किसी भी प्रकार है कि अंत उपयोगकर्ता द्वारा अस्थिर नहीं है" डेटाबेस config फ़ाइलों के बजाय में होना चाहिए। क्या यह सही है? आप कॉन्फ़िगरेशन को कैसे संबोधित करते हैं?

(मैं मुख्य रूप से कई-उपयोगकर्ता वेब अनुप्रयोगों यहाँ के साथ संबंध है, लेकिन कोई विशेष मंच।) है कितना config डेटा

+0

उपयोग में लाना बेहतर बदलना चाहिए। आपको भविष्य में शायद कम सिरदर्द होगा ... – TechJS

उत्तर

11

मुझे लगता है कि विकास के दौरान यह विन्यास एक फ़ाइल में संग्रहीत है के लिए काफी लाभदायक है।

यह एक फ़ाइल (web.config, app.config, या कुछ कस्टम फ़ाइल) देखें और परिवर्तन है कि तुरंत उठाया जाता है जब कोड चलाया जाता है बनाने के लिए काफी आसान है। डेटाबेस में संग्रहीत विन्यास के साथ काम करने में थोड़ा और घर्षण शामिल है। यदि आपकी टीम एक एकल विकास डेटाबेस का उपयोग करती है तो आप अपने परिवर्तन के साथ अन्य टीम के सदस्यों को आसानी से प्रभावित कर सकते हैं, और यदि आपके पास व्यक्तिगत डेटाबेस हैं तो यह नवीनतम कॉन्फ़िगरेशन के साथ "नवीनतम" होने और चलने से अधिक लेता है। इसके अलावा, एक्सएमएल की लचीलापन कॉन्फ़िगरेशन को स्टोर करने के लिए और अधिक स्वाभाविक बनाती है जो एक संबंध में डीबी की तुलना में फ़ाइल में "नाम-मूल्य" जोड़े से अधिक है।

दोष यह वह जगह है जहाँ आप एक साथ कई एप्लिकेशन या वेब साइट उदाहरणों भर में विन्यास का पुन: उपयोग करना चाहते हैं। मेरे अपने मामले में, हमारे पास एक प्रसिद्ध स्थान पर एक एकल कॉन्फ़िगरेशन फ़ाइल है जिसे किसी भी एप्लिकेशन द्वारा संदर्भित किया जा सकता है।

कम से कम, यह हम कैसे की दुकान "स्थिर" विन्यास रनटाइम पर प्रणाली द्वारा अपडेट करने की जरूरत नहीं है कि है। उपयोगकर्ता सेटिंग्स शायद डीबी में भंडारण के लिए अधिक उपयुक्त हैं।

+0

+1 बहुत गहरा और बुद्धिमान उत्तर। अगर मैं स्थापना/तैनाती के समय में इसे बदलने की जरूरत नहीं है तो मैं कोड में कॉन्फ़िगरेशन रखने की भी सिफारिश करता हूं। यह संकलन-समय की जांच को लागू करेगा और विकास प्रक्रिया में शुरुआती कई कॉन्फ़िगरेशन समस्याओं को रोक देगा। –

4

एक बात conside के लिए है, और शायद कितनी बार इसे बदलने की संभावना है। यदि डेटा की मात्रा छोटी है, तो इसे किसी डेटाबेस में सहेजना (यदि आप पहले से किसी अन्य चीज़ के लिए डीबी का उपयोग नहीं कर रहे हैं), तो अधिकतर होगा, प्रत्येक 6 महीनों में एक बार बदले जाने वाले किसी चीज़ के लिए डीबी को समान रूप से बनाए रखना होगा संसाधनों।

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

4

जनरल सिद्धांत - अधिक होने की संभावना config डेटा यह डाटाबेस एक डेटाबेस

+0

ग्रेट वन लाइनर! असल में इस दुनिया में सबकुछ बदलने की संभावना है इसलिए मैंने खुद को ऐसी चीजों को चुनने के लिए पाया जो परिवर्तनों के पक्ष में परिभाषित प्रक्रियाएं हैं। मैं फ़ाइलों को फ़ाइलों (जैसे छवियों इत्यादि) के लिए कॉन्फ़िगरेशन और फ़ाइलों के लिए डेटाबेस का उपयोग करने के लिए प्रोत्साहित करता हूं। – TechJS

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