दुनिया भर में सबसे लंबे समय तक संभव फोन नंबर है जो मुझे फोन के लिए SQL varchar (लंबाई) में विचार करना चाहिए


200

दुनिया भर में सबसे लंबे समय तक संभव फोन नंबर है जो मुझे varchar(length)फोन के लिए एसक्यूएल में विचार करना चाहिए ।

विचार:

  • + देश कोड के लिए
  • () क्षेत्र कोड के लिए
  • एक्सटेंशन एक्सटेंशन के लिए x + 6 नंबर (इसलिए इसे 8 {space} बनाएं)
  • समूहों के बीच रिक्त स्थान (यानी अमेरिकी फोन में + x xxx xxx xxxx = 3 स्थान)
  • यहां मुझे आपकी सहायता की आवश्यकता है, मैं चाहता हूं कि यह दुनिया भर में हो

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


1
मुझे लगता है कि संख्या को लंबे मूल्य में परिवर्तित करना एक अच्छा समाधान होगा, और इसके लिए केवल 64 बिट स्थान की आवश्यकता होगी, मैं इसे सालों से इस्तेमाल कर रहा हूं, कोई समस्या नहीं है


1
@MattDiPasquale ने पहले ही यहाँ उल्लेख किया है , लेकिन धन्यवाद!
शिमी वेइटहैंडलर

2
सही, लेकिन उस उत्तर में वह लिंक शामिल नहीं था जो मैंने दिया था। आपका स्वागत है। :-)
ma11hew28

जवाबों:


79

अच्छी तरह से विचार करते हुए कि एक varchar (30) और एक varchar (100) के बीच कोई ओवरहेड अंतर नहीं है यदि आप केवल 20 वर्णों को संग्रहीत कर रहे हैं, तो सावधानी के पक्ष में और बस इसे 50 कर दें।


26
बस ज्ञान के लिए: इसलिए जब कोई उपरि है? कृपया अपने उत्तर में एक स्रोत शामिल करें, इसलिए हम आगे बढ़ सकते हैं और इससे मूल बातें सीख सकते हैं।
शिमी वेइटहैंडलर

6
मुझे पता है कि ऐसा होना चाहिए, लेकिन यह हमेशा नहीं होता है। MySQL में (उदाहरण के लिए) पूरी लंबाई का उपयोग छँटाई के लिए किया जाता है। कम से कम कुछ न्यूनतम प्रयास लागू करना सबसे अच्छा है।
मॉर्गन टॉकर

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

16
सभी बुराईयो की जड़ समयपूर्व इष्टतमीकरण है।
हरिन्दका

78
प्लैटिटुडिनस सामान्यीकरण और भी बदतर हैं। मन में अनुकूलन के साथ एक प्रणाली को डिजाइन करने है कभी नहीं बुराई प्रति se - जब एक, अनावश्यक unnoticeable और नाबालिग क्षमता के लिए समय का एक अत्यधिक राशि उपलब्ध कराती है अनुकूलन बुराई बन जाता है।
२१:

167

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

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

प्रत्ययों के लिए, कुछ पीबीएक्स 11 अंकों के एक्सटेंशन (फिर से, विकिपीडिया के अनुसार ) का समर्थन करते हैं। चूंकि पीबीएक्स एक्सटेंशन नंबर एक अलग डायलिंग प्लान का हिस्सा होते हैं (पीबीएक्स फोन कंपनियों के एक्सचेंजों से अलग होते हैं), एक्सटेंशन नंबरों को फोन नंबर से अलग करने की जरूरत होती है, या तो एक अलग चरित्र के साथ या उन्हें एक अलग कॉलम में संग्रहीत करके।


5
यदि आप प्रारूप वर्ण (जैसे '+', '(', ')', '-', और '') को संग्रहीत नहीं कर रहे हैं और आप विभिन्न राष्ट्रों से संख्याएँ संग्रहीत कर रहे हैं, तो आप प्रारूप को इंगित करने के लिए एक कॉलम जोड़ना चाह सकते हैं। नंबर प्रदर्शित करने के लिए संख्या का प्रकार।
Trisped

38
निचला रेखा: 15वर्ण। यदि उपसर्ग और प्रत्यय को संग्रहीत करते हैं, तो नीचे की रेखा है: 5 + 15 + 11 = 31
एलिकएल्ज़िन-किलाका

3
@MattEnright, मुझे लगता है कि आपको अपने उत्तर में AlikElzin की टिप्पणी को अपडेट करना चाहिए ।
शिम्मी वेइटहैंडलर

4
'+' प्रेजेंटेशनल en.wikipedia.org/wiki/List_of_international_call_prefixes
qubodup

17

GSM स्पेसिफिकेशन 3GPP TS 11.11 में , 'डायलिंग नंबर' के लिए MSISDN EF (6F40) में 10 बाइट्स अलग रखे गए हैं। चूँकि यह एक फ़ोन नंबर का GSM प्रतिनिधित्व है, और इसका उपयोग कुतरना बदली है, (और इसमें हमेशा कोष्ठक की संभावना है) डेटा के 22 अक्षर बहुत होने चाहिए।

मेरे अनुभव में, खुले / बंद कोष्ठक का केवल एक उदाहरण है, यह ऊपर के लिए मेरा तर्क है।


10

यह थोड़ा बुरा है, मैं अंतरराष्ट्रीय कॉल के लिए एक कॉलिंग कार्ड का उपयोग करता हूं, इसलिए यूएस + खाते में इसका स्थानीय नंबर # (6 अंक) + पिन (4 अंक) + "ठहराव" + जो आपने ऊपर वर्णित किया है।

मुझे संदेह है कि अन्य मामले भी हो सकते हैं


2
आपको बहुत अच्छी बात मिली। मैंने अपने संदेश में कुछ पंक्तियाँ
जोड़ीं

10
कॉलिंग रीडायल को डेटाबेस में नहीं होना चाहिए, हालांकि - यह वह भाग है जो डायल नियमों के अनुसार डायल करते समय जोड़ा जाता है। बिना किसी डायल से संबंधित जानकारी के, संग्रहीत संख्या आईएसओ के रूप में होनी चाहिए।
टॉम
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.