किसी डेटाबेस में किसी भौगोलिक पते / स्थान को संग्रहीत करने का एक सार्वभौमिक तरीका क्या है? [बन्द है]


25

भौगोलिक पते / स्थान का सही प्रारूप क्या है जो पृथ्वी पर किसी भी पते के लिए एक अच्छा फिट है? फिलहाल मेरे पास है:

  • देश
  • शहर
  • सड़क
  • संख्या
  • पाठ डेटा (सादगी के लिए)
  • ज़िप
  • अक्षांश / एलएनजी

लेकिन मेरा मानना ​​है कि मैं इसमें सुधार कर सकता हूं: किसी देश का राज्य / क्षेत्र या क्षेत्र जैसा कुछ हो सकता है। या सिंगापुर या हांगकांग में कोई क्षेत्र / क्षेत्र / राज्य, नहीं कहेंगे।

कोई सड़क नहीं हो सकती है, लेकिन सड़क या बुलेवार्ड या कुछ और। किसी भवन की संख्या यौगिक हो सकती है। कोई मंजिल हो सकती है। एक कमरा नंबर। आदि....


11
आपको यह पता लगाने की जरूरत है कि कौन सा आवेदन है, और वह पता कौन उपलब्ध करा रहा है। उदाहरण के लिए, अधिकांश वेब कमर्शियल स्टोर्स / वेबसाइटों पर, मैं कोई "अक्षांश / देशांतर" नहीं लिखता, जो इसके विपरीत ICBM (या GPS) के लिए आवश्यक है। इसके अलावा, कुछ मामलों में ऊंचाई (और समय और तारीख) महत्वपूर्ण है (समुद्र में कुछ जहाज के बारे में सोचें, या एवरेस्ट पर कुछ यात्री)। इसलिए मुझे यकीन नहीं है कि कोई सार्वभौमिक जवाब है।
बेसिल स्टारीनेवविच


6
@BasileStarynkevitch: मुझे लगता है कि यह इतना महत्वपूर्ण नहीं है "क्या अनुप्रयोग के लिए", लेकिन "किस मामले (ओं) के लिए"। यदि, उदाहरण के लिए, उपयोग मामला यह सुनिश्चित करने के लिए है कि दुनिया भर में व्यापक डाक सेवाएं मेल प्रदान कर सकती हैं, तो मुझे लगता है कि इस प्रश्न का उत्तर समझदार तरीके से दिया जा सकता है। हालाँकि, इस उपयोग के मामले में "lat / lng" की आवश्यकता नहीं होगी।
डॉक ब्राउन

34
मुझे लगता है कि एक पते के लिए सार्वभौमिक प्रारूप एक एकल स्ट्रिंग है।
एरिक Eidt

12
आपके द्वारा उठाई गई समस्या इतनी दर्दनाक है, कि कुछ कंपनियों ने इसे संबोधित करने के लिए अपना सार्वभौमिक तरीका विकसित किया है, उदाहरण के लिए: what3words.com (मैपिंग स्थान के नीचे फोड़े जाने से तीन शब्दों का समन्वय होता है)। वे दावा करते हैं, कि "what3words के साथ, हर कोई और हर जगह अब एक पता है।"
रोमन सूसी

जवाबों:


51

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

आरंभ करने के लिए अपने लक्षित ग्राहक आधार के पते में सबसे आम आवश्यक फ़ील्ड देखें, और जैसा कि आप विभिन्न आवश्यकताओं के साथ आगे के देशों की पहचान करते हैं, आप अपने स्कीमा को समायोजित करना जारी रख सकते हैं।


5
मौजूदा समाधानों के अध्ययन के लिए +1। Addressएंड्रॉयड एसडीके से वर्ग एक और अच्छी जगह शुरू करने के लिए हो सकता है।
केविन क्रुमविडे ने

4
Google लाइब्रेरी का एक त्वरित स्कैन दर्शाता है कि यह oasis-open.org/committees/ciq/download.shtml
grahamj42

@ grahamj42, योग्य, वह पृष्ठ बहुत टूट गया है।
Nakilon

41

किसी डेटाबेस में भौगोलिक पता / स्थान संग्रहीत करने का सार्वभौमिक तरीका यह है:

[Address] nvarchar(max) not null

इसके लिए कम से कम प्रोग्रामिंग कोड की आवश्यकता होती है (और इसलिए रखरखाव लागत में कटौती करता है) और किसी भी पते के साथ पूरी तरह से संगत है। हालाँकि, यह तीन बड़े मुद्दे हैं:

  • डेटा सत्यापन की कमी का मतलब है कि फ़ील्ड का उपयोग पते को संग्रहीत करने के अलावा अन्य उद्देश्यों के लिए किया जा सकता है। उद्देश्यों में से एक डीओएस हमला है जिसका उद्देश्य पते के क्षेत्र में 2 जीबी डेटा दर्ज करके अपने डेटाबेस के स्थान को भरना है।

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

  • उपयोगकर्ता गलती से अधूरा या स्पष्ट रूप से गलत पता दर्ज कर सकते हैं।

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

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

ध्यान दें कि आप जो भी एपीआई का उपयोग करते हैं, वह सही नहीं होगा। यह सबसे पते मिल जाएगा, लेकिन उन सभी को नहीं। इस का मतलब है अगर एपीआई बताता है कि पता मौजूद नहीं है, लेकिन उपयोगकर्ता है कि यह करता है का कहना है, तो आप चाहिए कि एक प्रायोरी विश्वास उपयोगकर्ता, भले ही वह गलत हो सकता है।

इसका मतलब यह भी है कि आपको अभी भी एपीआई के परिणाम के साथ मूल उपयोगकर्ता के इनपुट को स्टोर करना चाहिए। इसका मतलब है कि स्कीमा बन जाता है:

[RawAddress] nvarchar(max) not null
[ParsedAddress] xml null

नोट: बहुत कम से कम, आप देश को अलग से स्टोर कर सकते हैं, यदि यह आवश्यक है। उदाहरण के लिए, यह उपयोगकर्ता को बदलने के लिए विकल्प के साथ, पते के क्षेत्र से स्वचालित रूप से घटाया जा सकता है।
मथिउ एम।

'एपीआई का उपयोग करें' का मतलब है कि किसी और को सभी देश के आधिकारिक प्रारूप मिल गए हैं। कोई कारण नहीं है कि आप इसे स्वयं नहीं कर सकते हैं
इवान

@ समय, धन, भाषा और अन्य बाधाओं को छोड़कर कोई कारण नहीं।
एंड्रयू का कहना है कि

यकीन है, लेकिन क्या हम आपके लिए सामान करने वाले अन्य लोगों के मूल्य निर्धारण या तुलना करने के बारे में जवाब दे रहे हैं?
इवान

@ ईवान: सवाल पते के भंडारण प्रारूप के बारे में है। एपीआई इस प्रारूप को निर्धारित नहीं करता है: मेरे उत्तर का लक्ष्य यह दिखाना है कि जैसे ही आपके पास एक सादा पाठ क्षेत्र और XML / JSON / पार्स किए गए डेटा के लिए जो भी क्षेत्र है, आप कहीं से भी एक पते को संग्रहीत और सांख्यिकीय रूप से संसाधित कर सकते हैं दुनिया में।
आर्सेनी मूरज़ेंको

37

एक नहीं है।

हर देश के पते अलग-अलग होते हैं। यदि आप भाग्यशाली हैं, और उनके पास एक प्रारूप है!

स्पष्ट रूप से अक्षांश / देशांतर आपको ग्लोब पर एक बिंदु देगा, लेकिन यह वास्तव में व्यक्तिगत घरों की पहचान करने के लिए उपयोगी नहीं है। उदाहरण के लिए बस एक टॉवर ब्लॉक पर विचार करें।

आधिकारिक प्रारूप के लिए प्रत्येक देश डाक सेवा की जांच करने के लिए आपकी सबसे अच्छी शर्त है। यह आपके बैकेंड डेटाबेस के लिए बहुत अच्छा हो सकता है। लेकिन आपको संभवतः इसे अंतिम उपयोगकर्ताओं के लिए सरल बनाना होगा क्योंकि इसमें बहुत से अधिक फ़ील्ड शामिल होंगे जिनकी तुलना में अधिकांश लोग उपयोग किए जाते हैं।

उदाहरण के लिए यूके में 'डबल डिपेंडेंट लोकलिटी' जैसी चीजें शामिल हैं, लेकिन किसी को नहीं पता होगा कि अगर आपने उनसे पूछा तो इसका क्या मतलब है।


3
क्या एक सार्वभौमिक तरीका है ...........
एक्सवारो

40
@ Xwaro उन्होंने कहा, एक नहीं है।
जिमस

6
मुझे लगता है कि Xwaro का मतलब है कि मैं पृथ्वी पर पते मान रहा हूं।
इवान

3
यह वह जगह है मुद्रित पते के प्रारूपों के लिए आधिकारिक स्रोत: यूनिवर्सल पोस्टल यूनियन
grahamj42

3
दिलचस्प। मुझे लगता है कि यह प्रासंगिक पृष्ठ है: upu.int/en/activities/addressing/s42-standard/… आप देख सकते हैं कि कैसे A: इसके कुछ ही देश हैं, और B: s42 से मैपिंग से देशों को पता प्रारूप नहीं है 1 से 1
इवान

21

एकमात्र सार्वभौमिक प्रारूप में एक एकल पाठ फ़ील्ड है जिसमें पाठ की कई पंक्तियाँ हो सकती हैं। यह पृथ्वी पर किसी भी संभावित पते की अनुमति देगा।


2
महान, अब हर कोई एक ही पते का वर्णन अलग, असंगत तरीके से कर सकता है। मुझे लगता है कि सवाल मानकों के बारे में नहीं पूछा, तो यह तकनीकी रूप से एक सही जवाब है।
माइकल

@Michael: पता कर रहे हैं अलग और दुनिया भर में असंगत। वहाँ है कोई मानक टेम्पलेट। एक बहु-पंक्ति फ़ील्ड होने से उपयोगकर्ता को वास्तव में सही पता लिखने की अनुमति मिलती है।
जैक्सबी

@ मिचेल सेपरेट फ़ील्ड्स अक्सर मुझे एक फ़ील्ड या दूसरे को संक्षिप्त / संक्षिप्त करने के लिए मजबूर करते हैं, जिससे असंगत प्रतिनिधित्व भी होता है। (अभी भी आम तौर पर काम करता है, डाक सेवाएं इस पर काफी अनुभवी हैं)।
हल्क

पुष्टि की गई: en.wikipedia.org/wiki/Address_(geography)
Eric.Void

बस एक दिलचस्प tidbit, यह तकनीकी रूप से सच नहीं है। देशों के कुछ क्षेत्रों में, पते के कुछ हिस्सों को चित्रों के रूप में तैयार किया जाता है।
कायाकिंकर

9

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

सामान्य तौर पर, हम उपयोग करते हैं:

  • देश
  • डाक / ज़िप कोड
  • राज्य / प्रांत / प्रान्त / काउंटी
  • शहर कस्बा गाँव
  • स्ट्रीट / रोड / ब्लॉक
  • भवन का नाम / संख्या
  • विशिष्ट / कस्टम जानकारी

एक बार दर्ज करने और सहेजे जाने के बाद, एक संयुग्मित संस्करण प्रदर्शित किया जा सकता है जो आवश्यक नहीं है।

जैसा कि मैंने कहा, यह उन सभी देशों के लिए काम करता है जिनके पास हमारे पास सॉफ्टवेयर था और 1989 से विकसित होने का परिणाम है।

आशा है कि यह किसी भी तरह से मदद करता है या कम से कम एक और अंतर्दृष्टि प्रदान करता है।


आप अपने राज्य में "राज्य / प्रांत / प्रान्त / काउंटी" के लिए एक कॉलम का नाम कैसे देंगे?
Xwaro

6
@Xwaro इससे कोई फर्क नहीं पड़ता, इसे नाम दें जो भी शब्द आपको लगता है कि आपके डेवलपर्स कम से कम भ्रमित होंगे। ऐसा इसलिए है क्योंकि नाम आपके सॉफ़्टवेयर के लिए आंतरिक है और उपयोगकर्ताओं द्वारा कभी नहीं देखा जाएगा। फ़ील्ड के नाम के साथ पता कभी प्रदर्शित नहीं होता है। यानी आप कभी नहीं देखते No 10 Street Downing Street, City Westminster, State London, Country UK। इसके बजाय आप देखेंगे10 Downing Street, Westminster, London, UK
slebetman

@slebetman प्रश्न था: "राज्य / प्रांत / प्रान्त / काउंटी" के लिए आप अपने db में एक कॉलम का नाम कैसे देते हैं? "राज्य / प्रांत / प्रान्त / काउंटी" के लिए आप मुझे अपने db में एक कॉलम का नाम कैसे सुझाते हैं?
Dari

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

@slebetman - आप इसे क्या कहते हैं?
दारी

0

जैसा कि पहले ही कहा गया है, सबसे सार्वभौमिक (लेकिन मान्य करने के लिए अव्यावहारिक और शायद कम से कम उपयोगी) एक बड़ा यूनिकोड क्षेत्र है।

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

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

राज्यों / प्रांतों या शहरों को समर्पित क्षेत्र अधिक समस्याग्रस्त होने लगते हैं, क्योंकि प्रत्येक देश एक पता तैयार करने के तरीके में बदलाव करता है। मैंने ऐसी फ़ील्ड्स रखने वाली पता तालिकाएँ स्थापित कर ली हैं क्योंकि प्रारंभिक ऑडियंस उत्तरी अमेरिका पर केंद्रित है, यह जानते हुए कि एक अंतरराष्ट्रीय ऑडियंस किसी समस्या को ठीक करने में सक्षम होगा। ज्यादातर मामलों में, वे "जूता-सींग वाला" हो सकते हैं, लेकिन यह एक है अजीब और संभावित विफलता-प्रवण समझौता - निश्चित रूप से सार्वभौमिक नहीं है।


0

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

मुझे लगता है कि आपका सबसे अच्छा शर्त एक पते को फ्री-फॉर्म मल्टी-लाइन टेक्स्ट के रूप में मानना ​​है। यह बेकार है कि आप सभी पतों को मान्य नहीं कर सकते हैं, लेकिन कुछ पते के प्रारूप वास्तव में अजीब हैं और संभवतः अप्रत्याशित हैं और अंत में सही पते को भरने की जिम्मेदारी उपयोगकर्ता पर टिकी हुई है और अधिकांश अनुप्रयोगों में उपयोगकर्ता को भरने के किसी भी नकारात्मक परिणामों को सहन करता है। गलत पता।

आप, हो सकता है, चेतावनी देने के लिए किसी सत्यापनकर्ता का उपयोग करें , लेकिन इससे अधिक कुछ नहीं। लेकिन उन पते को अस्वीकार न करें जो मान्य नहीं हैं, क्योंकि अन्यथा आप कुछ ग्राहकों को खो सकते हैं। यह इस सवाल का कारण बनता है कि उपयोगकर्ता को चेतावनी को इस तरह से कैसे संवाद किया जाए कि यह संवाद करेगा, यदि उपयोगकर्ता एक अजीब पते के प्रारूप वाले क्षेत्र में रहता है, तो चेतावनी को अनदेखा करना सुरक्षित है ...


-1

जैसा कि आप कहते हैं कि पृथ्वी पर कोई भी पता केवल लट लंबा है या ...

https://what3words.com

क्या 3 शब्द है, एक एल्गोरिथ्म है (इसलिए एक डेटाबेस नहीं तो कुछ भी एम्बेड किया जा सकता है) जो पृथ्वी पर कहीं भी 3x3 मीटर पैच को परिभाषित कर सकता है।

टोंगा और कुछ अन्य राज्यों ने इसे अपनी पोस्टकोड प्रणाली के रूप में अपनाया है, जबकि यह इसे एक अति सुंदर के रूप में प्रतिस्थापित नहीं करेगा, और बहुत अच्छी तरह से निर्मित और सोचा जाएगा।

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