कोर डेटा साइक्लाइट टेबल कॉलम 'Z' से क्यों शुरू होते हैं?


10

मैं sqlite टेबल को देख रहा था कि Core Data जेनरेट करता है और देखा कि सभी टेबल कॉलम 'Z' से शुरू होते हैं। मुझे लगता है कि यह एक कार्यान्वयन विवरण है, लेकिन मुझे इस बात की उत्सुकता थी कि ऐसा क्यों है और अगर इसमें कोई डिजाइन निर्णय शामिल था। किसी को भी पता है या लगता है क्यों?

यहाँ कोर डेटा साइक्लाइट डेटाबेस का एक नमूना स्कीमा आउटपुट है:

साइक्लाइट> .schema
रचनात्मक टेबल ZPOST (Z_PK INTEGER PRIMARY KEY, Z_ENT INTEGER, Z_OPT INTEGER, ZPOSTID INTEGER, ZUSER INTEGER, ZCREATEDAT TESTESTAMP, ZTEXT VARCHAR);
रचनात्मक टेबल ZUSER (Z_PK INTEGER PRIMARY KEY, Z_ENT INTEGER, Z_OPT INTEGER, ZUSERID INTEGER, ZAVATARIMAGEURLSTRING VARCHAR, ZUSERNAME VARCHAR);
सृजित टेबल Z_METADATA (Z_VERSION INTEGER PRIMARY KEY, Z_UUID VARCHAR (255), Z_PLIST BLOB);
रचनात्मक तालिका Z_PRIMARYKEY (Z_ENT INTEGER PRIMARY KEY, Z_NAME VARCHAR, Z_SUPER INTEGER, Z_MAX INTEGER);

मुझे वास्तव में इस विशिष्ट मामले में कारण के बारे में कोई पता नहीं है, लेकिन डेटाबेस तालिका के लिए यह एक असामान्य उद्देश्य नहीं है कि एक सामान्य उद्देश्य के लिए सेवा करना आसान संदर्भ के लिए एक विशेष उपसर्ग के साथ उपसर्ग किया जाए और अन्य तालिकाओं (जैसे उपयोगकर्ता और ज़ुसेर) की टक्कर से बचा जाए।
NoChance

संभवतः इसलिए ताकि वे हाजिर हों। Apple बहुत स्पष्ट है कि आपको Core Data टेबल्स को कभी भी Core Data के अलावा किसी अन्य चीज से एडिट नहीं करना चाहिए। तब यह समझ में आता है कि सभी कोर डेटा टेबल के लिए कुछ असामान्य उपसर्ग चुनना है ताकि यह बताना आसान हो जाए कि आप कब कोर टेबल देख रहे हैं।
कालेब

1
शायद यह पूर्व SAP सलाहकार द्वारा डिजाइन किया गया था?
फिलीपिंस

@ फ़ीलिप में एक बिंदु हो सकता है, हालाँकि मैं शुरुआती सुझाव पर हँसा था। एसएपी में, आप एसएपी आंतरिक तालिकाओं के साथ कोई टकराव सुनिश्चित करने के लिए एक कस्टम तालिका में जेड जोड़ते हैं। यहाँ वही हो सकता है: CoreData आपकी संस्थाओं के लिए बनाई गई तालिकाओं के सामने एक Z जोड़ता है ताकि यह सुनिश्चित किया जा सके कि इसके किसी आंतरिक सामान के साथ कोई तालिका टकराव न हो।
jmstone

1
अपने स्थानीय देव डेटाबेस में मैं Z के साथ टेबल्स को उपसर्ग करता हूं ताकि वे वर्णानुक्रम में सूची के नीचे क्रमबद्ध हो जाएं। जब मैं समाप्त होता हूं तो उन्हें एक साथ देखना और उन्हें हटाना आसान बनाता है।
mike30 17

जवाबों:


9

यह कोर डेटा SQLite में इस्तेमाल होने के लिए चुना गया नामकरण सम्मेलन है।

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

अंत में Z और सभी कैप्स का उपयोग करके कोर डेटा टेबल को स्पॉट करना और यूनिट ऑब्जेक्ट्स को कॉल करना आसान होता है। एक सवाल में माइक ने उल्लेख किया कि उसने अपनी सारणियों का नाम अज के साथ रखा है ताकि वे नीचे की ओर छांटें। यह भी एक विचार हो सकता है।


1
क्या आप सिर्फ दूसरों के सुझाव के आधार पर अनुमान लगा रहे हैं या क्या आपके पास एक वास्तविक स्रोत है कि Apple ने इस सम्मेलन को क्यों चुना? यह एक बहुत ही भड़कीला तर्क है क्योंकि इसके साथ उपसर्ग किया जा सकता था, उदाहरण के लिए, "ENTITY_"। या, यदि Apple को आंतरिक, गुप्त तालिकाओं की आवश्यकता है, तो उन्हें Z के साथ उपसर्ग किया जा सकता है और उपयोगकर्ता तालिकाओं को सामान्य रूप से नामित किया जा सकता है। ओपी ने WHY से पूछा है और मुझे अभी भी वास्तविक कारण नहीं दिख रहा है।
मैट
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.