बिंदुओं के लिए अद्वितीय आईडी असाइन करें


10

MassGIS पार्सल मानक (http://www.mass.gov/mgis/ParstndrdVer1_5_1.pdf) सुविधाओं के लिए एक अद्वितीय आईडी (LOC_ID) बनाने के लिए x- और y- निर्देशांक के संपूर्ण संख्या भाग के एक संघटन का उपयोग करता है। मैं एक बिंदु सुविधा वर्ग के लिए ऐसा करने पर विचार कर रहा हूं। मुझे लगातार कार्यप्रणाली पसंद है, लेकिन शायद मैं कुछ देख रहा हूं। बिंदु सुविधाओं के लिए अद्वितीय आईडी बनाने के लिए एक मानक या सर्वोत्तम अभ्यास है?


अनुवर्ती प्रश्न: क्या DBMS (SQL Server) या GIS सॉफ़्टवेयर (ArcGI) में अद्वितीय आईडी बनाना और उसे बनाए रखना सबसे अच्छा है?
cwb

1
क्या आप अपनी परियोजना के बारे में अधिक जानकारी प्रदान कर सकते हैं। तेह विशेषताएं क्या दर्शाती हैं? क्या उनके पास पहले से ही एक प्राकृतिक यूनिक आईडी है। आप इस संख्या का उपयोग करने की योजना क्या बना रहे हैं (यानी ट्रैक सुविधा, अन्य डेटाट स्रोतों से लिंक, आदि) ये सभी कारक आईडी निर्माण को संभालने के सर्वोत्तम तरीके पर हैं।
क्रिस एम

बिंदु सुविधाएँ कैच बेसिन को दर्शाती हैं। कोई प्राकृतिक अद्वितीय आईडी नहीं है। DPW कर्मचारी कैच बेसिन सफाई कार्यक्रम के बारे में जानकारी की एक तालिका से जोड़ना चाहते हैं। मेरे पास और अधिक विवरण नहीं हैं, लेकिन इस बात पर ध्यान दें कि मैदान में कर्मचारी सफाई करते समय नोट बना रहे होंगे, कैच बेसिन की स्थिति, आदि
cwb

घाटियों के लिए आपके पास ottobasins संख्या है। मेरा अनुमान है कि यह अद्वितीय है। ottobacia (ottobasins) की कार्यप्रणाली की पकड़ पाने के लिए देखें। मुझे केवल पुर्तगाली में परिणाम मिले।
जॉर्ज सिल्वा

जवाबों:


18

यदि आप किसी अन्य तालिका के संबंध में एक विदेशी कुंजी के रूप में कुछ के लिए उस आईडी का उपयोग करते हैं तो आपके पूरे डेटाबेस को बड़ी परेशानी हो जाएगी यदि आपको किसी कारण से एक बिंदु को स्थानांतरित करना है। संभवतः आपको आईडी रखना होगा, भले ही वह एक्स-निर्देशांक का वर्णन न करे।

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

/ Nicklas


7
+1 कभी भी कभी भी आईडी का उपयोग न करें, जिसका अर्थ कुछ है या उनमें व्यावसायिक डेटा का उपयोग करें। मेरे काम पर कोई बस इसलिए भड़क गई क्योंकि उन्होंने आईडी और लो में सड़क के नाम का इस्तेमाल किया था और सड़क के नाम को बदलना पड़ा था, अब आईडी गलत है।
नाथन डब्ल्यू

4

निकलस जवाब और मेरी टिप्पणी से जोड़ना।

मैं कहूंगा कि सबसे ज्यादा इस्तेमाल किया जाने वाला सम्मेलन और सबसे ज्यादा सिफारिश सिर्फ ऑटो-इंक्रीमेंट आईडी का उपयोग करने के लिए है, जैसे कि 1 से शुरू करें और बस चलते रहें। कोई तर्क और सरल नहीं।

यदि आपके पास एक वितरित प्रणाली है, या ऑटो-इंक्रीमेंट नंबर पसंद नहीं है, तो आप एक GUID का उपयोग कर सकते हैं। अधिकांश डेटाबेस आपके लिए इस तरह की आईडी बनाने का काम संभालेंगे। हालाँकि, वे उपयोगकर्ता के लिए मैन्युअल रूप से प्रवेश करने, आदि की खोज करने के लिए एक दर्द हैं, इसलिए बस इसे ध्यान में रखें।

अन्य विकल्प डेटा के किसी प्रकार के हैश का उपयोग करना है, लेकिन मैं इसकी सिफारिश नहीं करूंगा। इसका मतलब यह होगा कि आपको ऐसा करने के लिए एक एल्गोरिथ्म लिखने की आवश्यकता होगी, आप हमेशा विशिष्टता सुनिश्चित नहीं कर सकते हैं, वे खोज के लिए प्रवेश करने के लिए एक दर्द भी होते हैं।

ये सिर्फ मेरी राय हैं, लेकिन व्यक्तिगत अनुभव से, मुझ पर भरोसा करें, आईडी में कभी भी व्यावसायिक डेटा का उपयोग न करें।


4

अनुवर्ती प्रश्न: क्या DBMS (SQL Server) या GIS सॉफ़्टवेयर (ArcGI) में अद्वितीय आईडी बनाना और उसे बनाए रखना सबसे अच्छा है?

मैं दृढ़ता से DBMS के अंदर विशिष्टता के लिए जाँच करने का सुझाव देता हूँ। यह DBMSs की कई खूबियों में से एक है। यह आपको अपने डेटा को अलग-अलग जीआईएस सॉफ्टवेयर के साथ एक्सेस करने की अनुमति देता है जो संभवतः अद्वितीय बाधाओं के बारे में नहीं जानते होंगे।


3

हमारी पहचान योजना मेरे द्वारा नहीं चुनी गई, लेकिन निम्नानुसार है: 2,3,4 चरित्र कोड जो कि परिसंपत्ति की श्रेणी है और 6-अंकों की अनुक्रमिक संख्या है (आप जो भी अंकों की गणना आपके लिए काम करते हैं) का चयन करेंगे। एक संग्रहीत कार्यविधि ये आईडी बनाती है और एक ही SQL सर्वर डेटाबेस में गैर-जियोडेटाबेस तालिकाओं के एक जोड़े पर निर्भर करती है।

मैं एक अलग, अनुक्रमिक ऑटो-इंक्रीमेंट आईडी रखता हूं। मैं एक 13 चरित्र वाले जियोश फील्ड (पॉइंट फीचर्स के लिए) भी रखता हूं , लेकिन मैं इसे कभी भी एक कुंजी की तरह इस्तेमाल नहीं करूंगा। जब भी फ़ीचर को स्थानांतरित किया जाता है, तो फ़ील्ड स्वतः-आबादी (एक कस्टम संपादक एक्सटेंशन द्वारा) होता है।

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


1

समान रूप से मान बनाने के लिए अतीत में मैंने सीआरसी गणनाओं का उपयोग किया है। बनाने के लिए बहुत मुश्किल नहीं है और पुस्तकालय / एल्गोरिदम ऑनलाइन उपलब्ध हैं।

वहाँ लाभ यह है कि आप बिंदुओं की तुलना में अधिक सुविधाएँ कर सकते हैं, जबकि एक संघटन वास्तव में केवल बिंदु सुविधाएँ होना चाहिए (जब तक कि आप वास्तव में बड़े पैमाने पर कुंजी नहीं चाहते हैं)।

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

ऐसा कहने के बाद, मुझे उस तरह आईडी असाइन करने के कई स्पष्ट लाभ नहीं दिख रहे हैं। मैं परिवर्तन का पता लगाने के लिए विधि का उपयोग कर सकता हूं (क्योंकि यह ज्यामिति के दो सेटों की तुलना में दो सीआरसी मूल्यों की तुलना में कुशल है) लेकिन फिर भी - प्राथमिक आईडी के रूप में इसका उपयोग क्यों करें?


1

"GUIDs, निश्चित रूप से, VB स्क्रिप्ट का उपयोग करके उत्पन्न किया जा सकता है। लेकिन ESRI द्वारा VB स्क्रिप्ट के क्रमिक डीम्फैसिस को देखते हुए, हम ArcMap में GUID पीढ़ी का प्रदर्शन दुनिया के नौवें आश्चर्य, पायथन का उपयोग करके करेंगे। आप में से पहले से ही उन लोगों के लिए नहीं। पता है, अजगर जीआईएस हैकर्स को निष्क्रिय करने के लिए भगवान का उपहार है। मेरी सलाह: इसे सीखो! इसे जीते रहो! इसे प्यार करो! "

http://eaglemap.com/blog/bid/45555/How-to-Generate-GUIDs-in-ArcMap


0

ईएसआरआई का आर्क हाइड्रो टूल एक टूलबार के साथ आता है जो एक अद्वितीय आईडी प्रबंधक भी स्थापित करता है जो पृष्ठभूमि में चलता है। टूलबार आपको फ़ीचर क्लास या जियोडेटाबेस प्रति यूनिक आईडी असाइन करने देता है। डिफ़ॉल्ट रूप से ID प्रबंधक केवल अनन्य आईडी विशेषताओं को संभालता है, जैसे कि HydroID, जो आर्क हाइड्रो डेटा मॉडल का हिस्सा है। लेकिन इसे अन्य विशेषताओं को संभालने के लिए भी सेट किया जा सकता है। उपकरण बहुत सारे प्रलेखन के साथ आते हैं, इसलिए आपकी आवश्यकताओं के लिए आईडी प्रबंधक को कॉन्फ़िगर करना एक समस्या नहीं होनी चाहिए।

अद्वितीय आईडी, मेरे ज्ञान के लिए, हमेशा एक पूर्णांक है। एक बार यूनिक आईडी असाइन करने के बाद, प्रबंधक हर नए बनाए गए फीचर के लिए नई यूनीक आईडी असाइन करने का ध्यान रखता है, जो कॉन्फ़िगरेशन पर फिट बैठता है।

अद्वितीय आईडी प्रबंधक डेटाबेस बैकएंड के लिए उपयोगी हो सकता है जो (AFAIK) व्यक्तिगत भू-आकृतिक जैसे ऑटो-इंक्रीमेंटिंग नंबरों का समर्थन नहीं करता है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.