एक आईफोन एप्लिकेशन पर विचार करें जो जानवरों की एक सूची है। एप्लिकेशन को उपयोगकर्ता को प्रत्येक जानवर के लिए कस्टम जानकारी जोड़ने की अनुमति देनी चाहिए - आइए रेटिंग (1 से 5 के पैमाने पर), साथ ही कुछ नोट्स जिन्हें वे जानवर के बारे में दर्ज कर सकते हैं। हालांकि, उपयोगकर्ता पशु डेटा को स्वयं संशोधित करने में सक्षम नहीं होगा। मान लें कि जब एप्लिकेशन अपडेट हो जाता है, तो (स्थिर) कैटलॉग भाग को बदलने के लिए यह आसान होना चाहिए, लेकिन हम अपडेट (गतिशील) कस्टम उपयोगकर्ता जानकारी भाग को अद्यतनों के बीच बनाए रखना चाहते हैं, इसलिए उपयोगकर्ता किसी भी को खोना नहीं चाहता उनकी कस्टम जानकारी।आईफोन और कोर डेटा: अपडेट के बीच उपयोगकर्ता द्वारा दर्ज डेटा को कैसे बनाए रखें?
हम शायद इस ऐप को बनाने के लिए कोर डेटा का उपयोग करना चाहते हैं। आइए यह भी कहें कि कोर डेटा का उपयोग करने वाले बैकिंग (SQLite) स्टोर को पूर्व-पॉप्युलेट करने के लिए जानवर डेटा में पढ़ने के लिए हमारी पिछली प्रक्रिया पहले से मौजूद है। हम इस डेटाबेस फ़ाइल को एप्लिकेशन बंडल में ही एम्बेड कर सकते हैं, क्योंकि यह संशोधित नहीं होता है। जब कोई उपयोगकर्ता एप्लिकेशन में अपडेट डाउनलोड करता है, तो नए संस्करण में नवीनतम (स्थैतिक) पशु कैटलॉग डेटाबेस शामिल होगा, इसलिए हमें इसकी तारीख से बाहर होने की चिंता करने की ज़रूरत नहीं है।
लेकिन, अब मुश्किल हिस्सा: हम कैसे (गतिशील) उपयोगकर्ता कस्टम डेटा को ध्वनि तरीके से संग्रहीत करते हैं?
मेरा पहला विचार यह है कि (गतिशील) डेटाबेस को ऐप के लिए दस्तावेज़ निर्देशिका में संग्रहीत किया जाना चाहिए, इसलिए एप्लिकेशन अपडेट मौजूदा डेटा को बंद नहीं करते हैं। क्या मैं सही हूँ?
मेरा दूसरा विचार यह है कि चूंकि (गतिशील) उपयोगकर्ता कस्टम डेटा डेटाबेस (स्थिर) पशु कैटलॉग के समान स्टोर में नहीं है, इसलिए हम रेटिंग और नोट्स इकाइयों के बीच एक रिश्ता बना सकते हैं (एक में डेटाबेस) और पशु इकाई (अन्य डेटाबेस में)। इस मामले में, मुझे लगता है कि एक समाधान रेटिंग/नोट्स इकाई में "animalName" स्ट्रिंग प्रॉपर्टी होगा, और इसे रनटाइम पर मिलान करें। क्या यह करने का सबसे अच्छा तरीका है, या कोर डेटा में दो अलग-अलग डेटाबेस "सिंक" करने का कोई तरीका है?
@ शगी मेंढक ... मुझे अब एक ही समस्या का सामना करना पड़ रहा है। मैं देखता हूं कि आपका समाधान इस मुद्दे को हल करने का एक सही समाधान है, लेकिन मैं यह जानना चाहता हूं कि आपने ऐसा करने का बेहतर तरीका निकाला है या नहीं। वैसे भी समाधान के लिए धन्यवाद। अब तक की सबसे अच्छी मदद मिली है। – learner2010
@ user621808 प्रत्येक बार जब मैं डेटा अपडेट करता हूं तो डेटाबेस का पुनर्निर्माण नहीं करना एकमात्र कामकाज होगा। दूसरे शब्दों में, इसे बिल्कुल एक बार बनाएं, और फिर जब भी जोड़/हटाएं/संपादन किए जाने की आवश्यकता होती है तो उसे हाथ से संपादित करें। –