मुझे एक डेटाबेस में पोस्टल कोड स्टोर करने की आवश्यकता है। कॉलम कितना बड़ा होना चाहिए?


103

मैं अपने Oracle डेटाबेस में कॉलम VARCHAR2 होने की उम्मीद करता हूं।

यूएस जिप्स 9 हैं।

कनाडा 7 है।

मुझे लगता है कि 32 अक्षर उचित ऊपरी सीमा होंगे

मैं क्या खो रहा हूँ?

[संपादित करें] टीआईएल: 12 इस सवाल का एक उचित जवाब है कि योगदान करने वाले सभी लोगों के लिए धन्यवाद।


उपयोगी लिंक, हालांकि यह सटीकता थोड़ा बाहर हो सकता है। ईजी यह ऑस्ट्रेलियाई पोस्टकोडों को 7 वर्णों के रूप में सूचीबद्ध करता है, जब वे वास्तव में 4 होते हैं। Ref: en.wikipedia.org/wiki/Postcodes_in_Australia और www1.auspost.com.au- postcodes पर उपलब्ध पोस्टकोड सूची ।
rossp

पुन: मेरी पिछली टिप्पणी - इसका मतलब यह नहीं है कि यह सूची एक गाइड के रूप में उपयोगी नहीं है। सूची को लंबे समय तक पोस्टकोड के आधार पर त्रुटिपूर्ण मानते हुए, सबसे लंबी लंबाई 9 अक्षर है इसलिए 16 अक्षर या उपचार के लिए आपको सांस लेने के लिए बहुत जगह देनी चाहिए।
rossp

साथ ही देश की सूची थोड़ी छोटी है। मुझे यकीन है कि सूचीबद्ध लोगों की तुलना में ग्रह पर अधिक देश हैं ...
रॉबर्ट कोरिटनिक

2
En.wikipedia.org/wiki/List_of_postal_codes के अनुसार , सबसे लंबे समय तक 12 अक्षर हैं, यदि आप '-' का भंडारण कर रहे हैं, तो 11
नील मैक्गिवेन

@CMS: आप इस विकिपीडिया पृष्ठ के लिंक को अद्यतन करना चाह सकते हैं , यह अधिक विस्तृत प्रतीत होता है।
वाजेक हर्मेज़

जवाबों:


51

विकिपीडिया के पोस्टल कोड पृष्ठ के माध्यम से स्किमिंग , 32 अक्षर पर्याप्त से अधिक होना चाहिए। मैं कहूंगा कि 16 किरदार भी अच्छे हैं।


8
अच्छा लिंक। यहां तक ​​कि यूएस ज़िप + 4 में विराम चिह्न की अनुमति देने से, 10 वर्ण किसी भी देश के लिए पर्याप्त होंगे जहां तक ​​मैं बता सकता हूं।
जोनाथन लेफ्लर

इस लिंक के आधार पर, ऊपर दिए गए पृष्ठ से, मैं चिली जैसे देशों को समायोजित करने के लिए 18 के साथ जाऊँगा: en.wikipedia.org/wiki/List_of_postal_codes
mopo922

5
चिली 7 अक्षर है। आपके द्वारा संदर्भित वेब पेज केवल विराम चिह्न दिखाता है।
ईविलटच

21

जैसा कि पहले ही @ नील-मैकगिगन द्वारा उठाया गया था, विकिपीडिया के विषय पर एक सभ्य पृष्ठ है। इसके आधार पर 12 वर्णों को यह करना चाहिए: http://en.wikipedia.org/wiki/List_of_postal_codes

विकिपीडिया लेख ~ 254 देशों को सूचीबद्ध करता है, जो यूपीयू (यूनिवर्सल पोस्टल यूनियन) के बारे में बहुत अच्छा है जिसमें 192 सदस्य देश हैं।


2
ध्यान दें कि मोंटसेराट केवल 8 वर्ण है, 1110-1350 एक सीमा को दर्शाता है। discovermni.com/about-montserrat/montserrat-post-codes
Vajk Hermecz

संभवतः विकिपीडिया को संपादन की आवश्यकता है, क्योंकि माल्टा के लिए समान दिखने वाले पोस्टल कोड में "AAA NNNN" जैसा एक जेनेरिक है। मेरे मन में 15 अक्षर भी नहीं होंगे क्योंकि यह केवल बाद में कम समस्या हो सकती है यदि हमें कॉलम की लंबाई को समायोजित करना है, साथ ही डेटा प्रकारों के सही उपयोग के साथ, इसे वैसे भी सभी 15 वर्णों को नहीं लेना चाहिए (संभवतः varchar या nvarchar या जैसे?) ।
मनोहर रेड्डी ने 3

12

आप उस वास्तविक डेटा से बड़ा फ़ील्ड आकार क्यों घोषित करेंगे, जिसे आप इसमें संग्रहीत करने की अपेक्षा कर रहे हैं?

यदि आपके आवेदन का प्रारंभिक संस्करण अमेरिका और कनाडाई पते (जो मैं इस तथ्य से अवगत कर रहा हूं कि आप अपने प्रश्न में उन आकारों को कहते हैं) का समर्थन करने जा रहे हैं, तो मैं क्षेत्र को VARCHAR2 (9) (या VARCHAR2 () के रूप में घोषित करूंगा। 10) अगर आप जिप + 4 फील्ड में हाइफ़न स्टोर करने का इरादा रखते हैं)। यहां तक ​​कि अन्य देशों के डाक कोडों को देखकर भी, VARCHAR2 (9) या VARCHAR2 (10) अन्य सभी देशों के लिए पर्याप्त होगा।

रेखा के नीचे, आप हमेशा स्तंभ को बदल सकते हैं ताकि लंबाई बढ़ जाए। लेकिन आम तौर पर किसी को रोकना मुश्किल होता है, कहीं "रचनात्मक" तय करने से और 50 पात्रों को एक कारण या किसी अन्य के लिए VARCHAR2 (50) क्षेत्र में सामान करना (क्योंकि वे शिपिंग लेबल पर दूसरी पंक्ति चाहते हैं)। आपको सीमा मामलों के परीक्षण के साथ भी निपटना होगा (क्या प्रत्येक एप्लिकेशन जो एक ज़िप हैंडल 50 वर्णों को प्रदर्शित करता है?)। और इस तथ्य के साथ कि जब ग्राहक डेटाबेस से डेटा प्राप्त कर रहे हैं, तो वे आम तौर पर प्राप्त किए गए डेटा के अधिकतम आकार के आधार पर मेमोरी आवंटित कर रहे हैं, किसी दिए गए पंक्ति की वास्तविक लंबाई नहीं। संभवतः इस विशिष्ट मामले में बहुत बड़ी बात नहीं है, लेकिन कुछ स्थितियों के लिए 40 बाइट प्रति पंक्ति रैम का एक अच्छा हिस्सा हो सकता है।

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


4
ठीक है, हम मानते हैं कि हम प्रो * सी जैसे कुछ मूर्खतापूर्ण तरीके से कोडिंग कर रहे हैं, विकास के लिए क्षेत्र काफी बड़ा होने का मतलब है कि कोड को छूने की आवश्यकता नहीं है, उपयोग में वृद्धि होनी चाहिए।
EvilTeach

हाँ, हमें 5 और 4 अंकों में ज़िप कोड को तोड़ने से समझ में आ सकता है कि आप इसके लिए इसके उपयोग पर क्या योजना बनाते हैं। उदाहरण के लिए, यदि आप किसी प्रकार का पता मिलान कर रहे हैं, तो आप पहले zip5 पर मिलान कर सकते हैं, और ज़िप के साथ अस्पष्ट स्थितियों को हल कर सकते हैं। यह देश कोड का उपयोग करने में भी मदद करता है
EvilTeach

3

आपको जो याद आ रहा है, वह एक कारण है कि आपको पोस्टल कोड को विशेष रूप से संभालने की आवश्यकता क्यों है।

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

बस VARCHAR2 (50) [उदाहरण के लिए] के तीन या चार पते फ़ील्ड बनाएं और उपयोगकर्ता इनपुट जो भी वे चाहते हैं उसे दें।

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


मैं सहमत हूँ। VARCHAR2 फ़ील्ड का उपयोग करना वास्तविकता के लिए एक क्षेत्र की तरह है, जो वास्तव में कोई बात नहीं करता है। थोड़ा बहुत बड़ा एक ग्राहक को परेशान करने से बेहतर है क्योंकि वे अपने विवरण को इनपुट नहीं कर सकते।
टॉबी एलन

और varchars डेटाबेस के बाद से काम कर रहे हैं (कम से कम DB2) उनमें से भंडारण का अनुकूलन कर सकते हैं, ताकि भंडारण स्थान बर्बाद न हो।
paxdiablo

1
एक बिंदु यह होगा कि देश और डाक कोड के आधार पर कुछ स्थानों पर सस्ती डाक दरों के परिणामस्वरूप।
ईविलटच

10
Disgaree। आपके द्वारा तय की गई लाइन के कुछ समय के बाद आपको अपने डेटाबेस के पते (जैसे टंकण और डेटा प्रविष्टि त्रुटियों को ठीक करने के लिए) को मान्य करने की आवश्यकता होगी और वह यह है कि जब आप अपना डेटा मॉडल ठीक से बनाने के बजाय केवल सब कुछ दिखाते हैं, तो आपको लाभ होगा बाल्टी।
गैरी मायर्स

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

3

सामान्यीकरण? डाक कोड एक से अधिक बार उपयोग किए जा सकते हैं, और सड़क के नाम या शहर के नामों से संबंधित हो सकते हैं। अलग तालिका।


दिलचस्प। एक अलग दृष्टिकोण बस नीचे बिना किसी कारण के साथ बदल दिया। +1
ईविलटच

डाक कोड आमतौर पर सड़क के एक तरफ एक खंड को संदर्भित करेगा। व्यापक क्षेत्र खोजने के लिए, आप डाक कोड के पहले आधे हिस्से का चयन करेंगे। एक अलग तालिका में यह जानकारी होने से वास्तव में कुछ भी मदद नहीं करेगा और इसे बनाए रखने के लिए और अधिक जटिल होगा।
रेवणोआह

4
@EvilTeach: मुझे यकीन है कि इसे डाउनवोट किया गया था क्योंकि इसका ऑफ़ टॉपिक था। क्या यह आपको बताता है कि दुनिया में हर संभावित डाक कोड को संग्रहीत करने के लिए कितना बड़ा स्तंभ होना चाहिए? नंबर
wmax

2

कनाडाई पोस्टल कोड केवल 6 अक्षर हैं, अक्षर और संख्या के रूप में (LNLNLN)


3
कनाडाई डाक कोड "ANA NAN" थॉट्स 7 वर्णों के मध्य में रिक्त है।
EvilTeach

1
लेकिन अंतरिक्ष हमेशा बीच में होता है इसलिए आपको इसे स्टोर करने की आवश्यकता नहीं है।
ग्रीम पेरो

1
अंतरिक्ष डेटा का एक हिस्सा नहीं लगता है: "नोट: कनाडाई डाक कोड हमेशा एक ही क्रम में स्वरूपित होते हैं: अक्षर वर्ण / अंक / अल्फा / अंक / अल्फा / अंक (जैसे K1A0B1)।" वह कनाडा पोस्ट वेबसाइट से है।
तेगबेंस 6

2
मुझे नहीं लगता कि अंतरिक्ष को छोड़ने का 'सामान्यीकरण' से कोई लेना-देना है। यह केवल एक प्रदर्शन मुद्दा है। खाता संख्या में डैश की तरह। मैं इसे संग्रहीत नहीं करूंगा, और मैं उस पर भरोसा नहीं करूंगा कि किसी कंट्रीकोड (int) क्षेत्र में वरीयता के लिए कनाडाई पोस्टकोड को पहचाना जा सके। अलग डेटा और प्रस्तुति परत यह करने का सही तरीका है।
सैम

2
लिफाफे को संबोधित करते समय कनाडा पोस्ट पोस्टल कोड में स्थान पसंद करता है। इसे अंतरिक्ष के साथ संग्रहीत करना और प्रविष्टि पर सत्यापन को संभालना सबसे अच्छा है।
रेवन्यू

2

यूके ने प्रकाशित मानक: यूके सरकार डेटा मानक कैटलॉग

Max 35 characters per line 

अंतर्राष्ट्रीय डाक पता:

Minimum of 2 lines and maximum of 5 lines for the postal delivery point 
details, plus 1 line for country and 1 line for postcode/zip code 

यूके पोस्टल कोड की लंबाई है:

Minimum 6 and Maximum 8 characters 

1

यदि आप डेटाबेस में पोस्टल कोड को एकीकृत करना चाहते हैं तो जियोनेम डेटाबेस का उपयोग करना सबसे अच्छा है। भले ही इसका उपयोग करना और समझना कठिन है, लेकिन यह हमारे जैसे उपयोगकर्ताओं के लिए स्वतंत्र रूप से उपलब्ध सबसे बड़ा भौगोलिक डेटाबेस है।

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

आपकी जानकारी के लिए, varchar (20) पोस्टल कोड संग्रहीत करने के लिए पर्याप्त है

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