2012-04-29 12 views
10

मुझे यह जानकर उत्सुकता है कि कौन से कोर डेटा मॉडल का उपयोग करता है और क्यों, लाभ क्या हैं, मैं एक ऐसा एप्लीकेशन विकसित कर रहा हूं जो मुझे लगता है कि मुझे कई मॉडलों से लाभ हो सकता है, लेकिन मुझे अन्य लाभों से अनिश्चितता है।मुझे 2 या अधिक कोर डेटा मॉडल क्यों चाहिए?

मेरा अप और आने वाला ऐप आईपैड और आईफोन के लिए एक और संस्करण होगा, आईपैड में 3 मुख्य सामग्री हैं, आईफोन में केवल एक है जो आईपैड पर भी है, इसलिए इसे एक अलग कोर डेटा मॉडल में अलग करके परिवर्तनों को बनाए रखना मेरे दो ऐप्स में उस मॉडल का आसान होगा।

हालांकि मेरे पास दो इकाइयां हैं जिनकी मुझे दोनों की आवश्यकता होगी, इसलिए मैं उन्हें कॉपी कर सकता हूं या एक बड़ा मॉडल रख सकता हूं।

कोई सुझाव?

वैसे भी यह एक सामान्य स्थिति नहीं है, अन्य परिदृश्य आपको कई कोर डेटा मॉडल बनाने के लिए नेतृत्व कर सकते हैं?

+0

म्यूटिल मॉडल मॉडल कैसे जोड़ें? – harshitgupta

उत्तर

9

कभी-कभी विभिन्न दुकानों में विभिन्न प्रकार के डेटा रखने के लिए यह समझ में आता है। उदाहरण के लिए, एक उत्पाद जो कैटलॉग की तरह काम करता है, में एक स्टोर हो सकता है जो एक उत्पाद डेटाबेस है, और दूसरा जो उपयोगकर्ता के पसंदीदा, वर्तमान ऑर्डर और इतिहास का ट्रैक रखता है। इससे उपयोगकर्ता के डेटा को प्रभावित किए बिना उत्पाद डेटाबेस को अपडेट करना और संपूर्ण उत्पाद डेटाबेस की प्रतिलिपि किए बिना उपयोगकर्ता के डेटा का बैक अप लेना अपेक्षाकृत आसान हो जाता है।

एक और परिदृश्य जहां आप एकाधिक स्टोर का उपयोग करेंगे, उसी प्रकार के डेटा को स्टोर करना है। दस्तावेज़-आधारित अनुप्रयोग, उदाहरण के लिए, आम तौर पर प्रत्येक दस्तावेज़ के लिए एक अलग स्टोर बनाते हैं - स्टोर दस्तावेज़ हो सकता है।

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

+0

मॉडल ए में पसंदीदा जोड़कर आप मॉडल बी (उत्पाद मॉडल) में किसी ऑब्जेक्ट का संदर्भ नहीं दे रहे हैं? – Daniel

+0

@ डैनियल राइट - आप अलग-अलग * स्टोर्स * में ऑब्जेक्ट्स के बीच संबंध नहीं बना सकते हैं, इसलिए आप आम तौर पर पर्याप्त जानकारी (जैसे एक उत्पाद कोड) सहेजते हैं जिसे आप फिर से ऑब्जेक्ट ढूंढ सकते हैं। दुकानों और मॉडलों के बीच महत्वपूर्ण भेद के लिए मेरा अपडेट देखें। यदि प्रश्न में वस्तुओं को एक ही स्टोर में रखा जा रहा है, और यदि आपको उनके बीच संबंध बनाने की ज़रूरत है, तो आपको आगे बढ़ना चाहिए और एक मॉडल का उपयोग करना चाहिए। – Caleb

2

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

आप अभी भी आईपैड और आईफोन दोनों के लिए एक ही कोर डेटा मॉडल का उपयोग कर सकते हैं, केवल उन हिस्सों को अनदेखा कर सकते हैं जिन्हें आप आईफोन का उपयोग नहीं कर रहे हैं (जब तक आप लापता हिस्सों को जोड़ने के लिए फीचर अनुरोध प्राप्त नहीं करते हैं, जो आप चाहते हैं)। फिर आप सभी सेट हो जाएंगे और पहले से ही डेटा उपलब्ध होगा।

केवल चरम मामलों में एक अलग डेटा मॉडल का उपयोग करने के लायक होगा, उदाहरण के लिए, यदि आप केवल एक मौजूदा डेटा सेट डाउनलोड करने जा रहे थे जो केवल पढ़ा गया था आदि। आप केवल उपयोगकर्ता सेटिंग्स/डेटा इत्यादि

ऐप के साथ शुभकामनाएं!

+0

स्पष्ट इंगित करने के लिए, जब आप एकाधिक स्टोर का उपयोग करते हैं तो आप निश्चित रूप से रिश्तों का उपयोग कर सकते हैं; आप अलग-अलग दुकानों में ऑब्जेक्ट्स के बीच संबंध नहीं बना सकते हैं। मुझे पता है कि आपका मतलब यही है, लेकिन जैसा कि ऊपर बताया गया है, स्थिति वास्तव में उससे भी बदतर है। – Caleb

+0

धन्यवाद, मैंने इसे और अधिक स्पष्ट करने के लिए संपादित किया है। –

+0

तो मेरे मामले में मेरे पास साझा करने के लिए कुछ संस्थाएं हैं, मीडिया उनमें से एक है। मेरे पास एक मीडियाविडियो, मीडिया इमेज और मीडियाफाइल है जो रिमोट यूरीस रखती है और वास्तविक फाइल के स्थानीय कैशिंग के साथ सौदा करती है, मैं इन्हें पुन: उपयोग करना चाहूंगा और अगर मैं सही ढंग से समझता हूं तो कई मॉडलों के साथ ऐसा नहीं कर सका – Daniel

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