2011-01-26 22 views
5

करने के लिए कई रिश्तों को मैं एक कोर डाटा मॉडल के लिए मैं बंदरगाह के लिए कोशिश कर रहा हूँ एक डाटा मॉडल एक SQLite आधारित तालिका संरचना से की है। मेरी SQLite संरचना में एक ज़ोन टेबल और एक ट्रांजिटॉग ​​टेबल है। एक ट्रांजिटॉग ​​में निम्नलिखित (मेरे स्क्लाइट स्कीमा में) start_zone_id end_zone_idकोर डाटा एक ही इकाई

इनमें से प्रत्येक जोन तालिका के लिए एक विदेशी कुंजी है। यह एसक्यूएल में ठीक काम करता है। लेकिन कोर डेटा पर जाने पर मुझे यह समझने में परेशानी हो रही है कि इसे कैसे मॉडल किया जाए।

मेरा पहला प्रयास मुझे एक startZone और endzone रिश्ते के साथ मेरी TransitLog इकाई में दो संबंध बनाने में एक क्षेत्र के लिए उस समय का श्रेय

(खेद नहीं xcode का एक स्क्रीनशॉट पोस्ट करने के लिए यह मेरी पहली पोस्ट यहाँ है के रूप में कर रहा था)

सवाल मेरे पास है startZone के लिए व्युत्क्रम संबंध को संभालने के लिए कैसे और endzone संबंध जिम्मेदार बताते हैं। क्या मुझे उनकी ज़रूरत नहीं है? इस विषय पर मैंने जो दस्तावेज और पुस्तकें पढ़ी हैं, उनमें हमेशा एक व्यस्त रिश्ते का उपयोग करना सबसे अच्छा है, लेकिन अगर मैं आवेदन नहीं करता हूं तो मैं इस विशेष स्थिति के बारे में सोच रहा हूं। या मैं बस कोर डेटा में गलत तरीके से मॉडलिंग कर रहा हूं।

किसी भी सलाह के लिए धन्यवाद।

माइक

उत्तर

3

आप क्षेत्र इकाई है कि TransitLog को इंगित, startLogs और endLogs जैसा कुछ कहा में दो अलग-अलग करने के लिए कई रिश्ते हैं कर सकते हैं। वे क्रमशः startZone और endZone के लिए उलटा होंगे।

+1

ध्यान दें कि संकुचित/सिंटैक्स भावना में बिल्कुल जरूरी नहीं है, हालांकि कोरडाटा को हटाए जाने पर कई सेट को अपडेट करने की अनुमति देने के लिए आवश्यक है। –

+0

यदि आपको ज़ोन से ट्रांजिटॉग्स तक जाने की आवश्यकता नहीं है, तो आप विपरीत रिश्ते के बिना कर सकते हैं। ऐसा प्रतीत नहीं होता है कि ट्रांजिटॉग ​​को हटाने से इसकी शुरुआत ज़ोन और एंडज़ोन पर कोई असर पड़ेगा। तो, ऐसा लगता है कि आप व्यस्त रिश्तों को छोड़ना ठीक होगा। हालांकि, अगर आपको लगता है कि आप कभी भी यह कहना चाहते हैं कि प्रत्येक क्षेत्र से कितने पारगमन लॉग उत्पन्न होते हैं, तो आप अब व्यस्त रिश्ते जोड़ना चाहेंगे और बाद में माइग्रेशन प्रयास को बचा सकते हैं। – westsider

1

धन्यवाद लोग - दोनों जवाब एक बहुत मदद की। Westsider सही है मुझे वर्तमान में ज़ोन से ट्रांजिटॉग ​​पर जाने की आवश्यकता नहीं है और इसलिए मैं सोच रहा था। लेकिन कहा जा रहा है कि मुझे लगता है कि यह संभव है कि मुझे किसी बिंदु पर उनकी आवश्यकता हो सकती है (हजारों उपयोगकर्ता उम्मीदवारों के लिए क्लैमरिंग कर रहे हैं;)) तो अब इसे मॉडल करने के लिए शायद बेहतर है।

जवाब के लिए एक बार फिर धन्यवाद। विशेष रूप से पहली बार -

2

nontrivial मॉडल संस्करण और प्रवास एक वास्तविक समय सिंक हो सकता है। इसी कारण से, साथ ही ऐप्पल उनका उपयोग करने की सिफारिश करता है, मैं उलटा संबंध जोड़ने की सिफारिश करता हूं।

यही कहा, मैं कम से कम एक मामले में जहां यह बस एक व्युत्क्रम संबंध जोड़ने के लिए कोई मतलब नहीं था पाया है - और सब कुछ ठीक काम करता है। लेकिन उस स्थिति में वहां एक परिदृश्य ढूंढना बेहद मुश्किल था (और अवशेष) जहां प्रतिकूल रिश्ते कभी उपयोगी या आवश्यक हो।

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