2010-08-03 15 views
8

प्रति कोर डाटा प्रोग्रामिंग गाइड:कोर डाटा - वैकल्पिक विशेषताओं और प्रदर्शन

आप निर्दिष्ट कर सकते एक विशेषता है कि वैकल्पिक-कि है, यह की आवश्यकता नहीं है एक मूल्य है। आम तौर पर, आपको करने से निराश किया जाता है, विशेष रूप से संख्यात्मक मान (आमतौर पर डिफ़ॉल्ट मान-0 के मॉडल में अनिवार्य विशेषता का उपयोग करके बेहतर परिणाम प्राप्त कर सकते हैं)। इसका कारण यह है कि SQL में NULL के लिए विशेष तुलना व्यवहार है जो उद्देश्य-सी के शून्य के विपरीत है। डेटाबेस में NULL 0, जैसा नहीं है और 0 के लिए खोज न्यूल के साथ कॉलम से मेल नहीं खाती है।

मैंने हमेशा संख्यात्मक मूल्यों को गैर-वैकल्पिक बना दिया है, लेकिन तिथियों और तारों के लिए नहीं है। यह मेरे कोड में तारीखों और/या तारों के आधार पर आधार तर्क के लिए सुविधाजनक है।

उपर्युक्त सिफारिशों के आधार पर, मैं अपने डेटाबेस में सब कुछ गैर-वैकल्पिक बनाने पर विचार कर रहा हूं। तिथियों के लिए मैं मॉडल के डिफ़ॉल्ट को 0 के मान पर सेट कर सकता हूं और तारों के लिए कुछ भी ("") का मॉडल डिफ़ॉल्ट नहीं कर सकता। फिर, मेरे कोड में मैं [date timeIntervalSince1970] के लिए तारीखों का परीक्षण कर सकता हूं! = 0 और string.length के लिए तार! = 0.

प्रश्न अपेक्षाकृत छोटे डेटाबेस के लिए है, क्या यह वास्तव में कोर डेटा प्रदर्शन से महत्वपूर्ण है दृष्टिकोण? और ट्रेडऑफ क्या है यदि प्रश्न में विशेषता को भविष्यवाणी के माध्यम से सीधे पूछताछ नहीं की जाएगी?

उत्तर

10

मैंने छोटे से मध्यम आकार के डेटा सेट पर कोई प्रदर्शन समस्या नहीं देखी है। मुझे संदेह है कि यह ऐसा कुछ है जिसे आप अपने आवेदन के प्रदर्शन चरण में सौदा करेंगे।

व्यक्तिगत रूप से मैं गैर-संख्यात्मक के समान तर्क का उपयोग वैकल्पिक होने पर करता हूं अगर यह समझ में आता है क्योंकि यह वास्तव में कोड को आसान बनाता है जो बदले में मुझे अनुकूलित करने के लिए और अधिक समय देता है।

+0

धन्यवाद मार्कस! मैं उम्मीद कर रहा था कि आप इसका जवाब देने वाले होंगे। एक प्रमाणित कोर डेटा निंजा से आने से मुझे इस मुद्दे को मेरे पीछे छोड़ने का विश्वास मिलता है। – thevoid

+6

यदि मार्कस वास्तव में कोर डेटा निंजा था तो हम उसे कभी नहीं देख पाएंगे ... जब तक वह हमें नहीं सोचना चाहता। निंजा मुश्किल शैतान हैं। – TechZen

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