वे रहने के रूप में वे कर रहे हैं - अब और मौजूदा नहीं गुण जब लोड हो रहा है पर ध्यान नहीं दिया जाएगा (और परिवर्तन पर खो दिया है), और लापता गुण वापस अशक्त के रूप में आ जाएगा,
आप सिफारिश ऑब्जेक्ट मॉडल के साथ डेटा को रखने के लिए सेट आधारित संचालन का उपयोग करें।
ओह, मुझे देखो, मैं अब कंप्यूटर पर हूं!
ठीक उसी तरह, मूल रूप से, एक दस्तावेज़ स्टोर में जाने में आप यह स्वीकार करने में सही हैं कि आप कुछ कार्यक्षमता खो देते हैं और डेटाबेस में उसमें कुछ स्वतंत्रता प्राप्त करते हैं, आपके पास एक शीर्ष-स्कीमा परिभाषित है और डेटा अपलोड करने का प्रयास कर रहा है जो ' टी स्कीमा से मेल खाता है एक त्रुटि होगी।
हालांकि यह पहचानना महत्वपूर्ण है कि स्कीमा-कम और संरचना-कम के बीच एक अंतर है, जिसमें आपके दस्तावेज़ों में सभी की अपनी संरचना होती है (कुंजी/मूल्य जोड़े संपत्ति का नाम और संपत्ति मूल्य दर्शाती हैं)।
यह कुछ कोड लिखने के लिए "बस हो रहा है" कारक के लिए उपयोगी बनाता है और आपका डेटा जारी रहता है - लेकिन जब आपकी कोड संरचना को बदलने के लिए जाना इतना आसान होता है तो यह आपके साथ पहले से ही जारी रहना मुश्किल हो सकता है डेटा।
कुछ रणनीतियों के लिए खुद को इस बिंदु पर मौजूद:
- अपने संरचना अपरिवर्तनीय बनाओ एक बार आप डेटा कायम किया है, संस्करण अपनी कक्षाओं
- संरचना बदलाव की अनुमति दें, लेकिन आपरेशन सेट के आधार पर उपयोग करने के लिए डेटा को अद्यतन करने नई संरचना से मेल
- संरचना बदलाव की अनुमति दें, और विसंगतियों से निपटने के लिए कोड लिखने जब डेटा
तीसरा स्पष्ट है लोड हो रहा है एक बुरा विचार है क्योंकि यह अनजान कोड का कारण बन जाएगा, आपके वर्गों का संस्करण काम कर सकता है यदि आप केवल घटनाओं या ऐसे अन्य डेटा संग्रहीत कर रहे हैं लेकिन अधिकांश परिदृश्यों के लिए वास्तव में उपयुक्त नहीं है, इसलिए आपको मध्य विकल्प के साथ छोड़ दिया गया है।
मैं बस ऐसा करने की अनुशंसा करता हूं, और कुछ सरल नियमों का पालन करता हूं जैसे आप एक रिलेशनल डेटाबेस में अप-फ्रंट स्कीमा से निपटने के दौरान अनुसरण करेंगे।एक दस्तावेज़ लोड और दस्तावेज़ को सहेजने परिणाम देगा के रूप में -
- तैनात संस्करणों
- लिखें माइग्रेशन स्क्रिप्ट के बीच परिवर्तन है कि एक संस्करण से नवीनीकृत एक और
- को/renames से सावधान रहें गुण को हटाने निर्धारित करने के लिए अपने VCS प्रणाली का उपयोग करें जिससे डेटा की उन गुणों नया दस्तावेज़ पर मौजूद नहीं हैं, तो
आदि
मुझे आशा है कि यह वह जगह है और अधिक उपयोगी :-)
स्रोत
2011-01-23 22:12:30
निश्चित रूप से मुझे कुछ याद आ रहा है, लेकिन आईआईआरसी जो एक * स्कीमा-कम * दस्तावेज़ डेटाबेस है, इसलिए केवल एकमात्र जवाब है "कुछ भी नहीं होता"। वे अभी भी उसी प्रारूप में मौजूद हैं जो आपने उन्हें * इन * में रखा है ...? –
बहुत अच्छा मुद्दा ... अरे पारंपरिक रिलेशनल स्पेस से मेरा सिर मुश्किल हो रहा है! – codedog
@ कोडिडॉग मुझे लगता है कि परंपरा पारंपरिक संबंधपरक जगह से बाहर निकलने के लिए जरूरी नहीं है, लेकिन यह समझने के लिए कि प्रत्येक लक्ष्य के एक अलग सेट के साथ एक उपकरण है। हम अपने आवेदन में एक संबंधपरक डेटाबेस और NoSQL डेटाबेस दोनों का उपयोग करते हैं। आप केवल एक हथौड़ा के साथ एक पूरा घर नहीं बनायेगा। इसी तरह, आप केवल एक आंख के साथ एक घर नहीं बनायेगा। – Brain2000