13

आइए कहें कि आप अपने सामान्य संपर्क डेटाबेस से निपट रहे हैं (आपको पता है ... नाम, फोन नंबर, पता, ईमेल, आदि ...)। यदि आप इस स्थानीय रूप से इस बारे में चिंतित हैं, तो आम तौर पर यह निपटने के लिए एक बड़ा मुद्दा नहीं है, लेकिन जब हम अंतरराष्ट्रीय सेट देखते हैं तो यह है।डेटाबेस में अंतरराष्ट्रीय डेटा सेट के लिए सामान्यीकरण/सत्यापन?

फोन नंबर सिस्टम को देखते हुए, आपको लगता है कि यह आसान है, लेकिन यह वास्तव में नहीं है। उत्तर अमेरिका में, आम तौर पर लोगों को कॉल करने के लिए हमारे पास 1-222-333-4444 प्रारूप होता है। यह निश्चित रूप से आपके अंतरराष्ट्रीय डायलिंग कोड, क्षेत्र कोड, विनिमय उपसर्ग और रेखा संख्या में विभाजित है। समस्या: वास्तविक फोन नंबर सीमित हैं, अमेरिका में संभावित 1000 से बाहर 220 क्षेत्र कोड हैं, प्रत्येक क्षेत्र कोड में केवल सीमित संख्या में एक्सचेंज हैं, और रेखा संख्या उस देश के तहत विशिष्ट उपयोग तक सीमित हैं (उदाहरण के लिए, 911 के साथ पैटर्न प्रतिबंधित हैं, 10,000 के केवल 3/4 वें उपयोग में हैं)। इसे यूके में ले जाएं, उनके पास लाइन नंबरों के लिए नियमों का अपना सेट है, जैसे 0300-039 9 ब्लॉक को विशिष्ट उपयोग के लिए आरक्षित करना, और अन्य प्रतिबंध। अंतर्राष्ट्रीय कोड भी सीमित हैं। सामान्य कोड क्षेत्र, एक्सचेंज, और डालने के लिए फोन नंबरों पर डेटा सत्यापन जांच अभी जटिल हो गई है। मैं इस बारे में विस्तार से नहीं जा रहा हूं कि जब हम NPA scheme का हिस्सा नहीं हैं, तो हम केवल यह पहचान लें कि हम वास्तव में उत्तर अमेरिकी टेम्पलेट पर भरोसा नहीं कर सकते हैं, वापस ला सकते हैं और इसे एक दिन बुला सकते हैं।

हम इस तरह चीजों के लिए कैसे को सामान्य करते हैं? हम डेटा कैसे मान्य करते हैं? हम आंतरिक डायलिंग के लिए इन प्रतीत होता है कि विज्ञापन विस्तार कोड या निर्देशों से कैसे निपटें?

International addresses अधिक बेहतर नहीं हैं, न केवल डेटा बनाए रखने के बीच अंतर, बल्कि आउटपुट प्रारूप बोर्ड में समान नहीं हैं। हम अंतर्राष्ट्रीय पोस्टल कोड से कैसे निपट सकते हैं, जब कनाडा में प्रारूप ए 1 ए 1 ए 1 है, और संयुक्त राज्य अमेरिका में 55555 [-4444] जैसी प्रणाली है?

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

+0

यह वास्तव में दिलचस्प समस्या है। क्या आप इन डेटा को स्टोर प्रक्रिया या ट्रिगर के भीतर से सत्यापित करना चाहते हैं, या आप डीबी क्लाइंट को सत्यापित करना चाहते हैं? –

+0

मुझे एहसास है कि कार्यान्वयन में इनमें से एक मिश्रण की आवश्यकता हो सकती है, लेकिन सिद्धांत में मुझे लगता है कि संग्रहीत प्रक्रियाएं और ट्रिगर्स सबसे अच्छा विकल्प हो सकता है। – Incognito

उत्तर

7

इस समस्या आ का एक तरीका हो सकता है:

पते/फोन नंबर/पोस्ट कोड आदि की तीन दृश्य को अपनाने

  1. पहली बार देखने पते (कहते हैं) कई लाइनों के रूप में की है पाठ का

  2. दूसरा दृश्य पता टैग (नीचे इस पर अधिक) है।

  3. तीसरे दृश्य पतों

अन्य घटक है कि मान्यता के लिए एक सामान्य प्रक्रिया (वर्ग/ट्रिगर) कर रहे हैं इस दृष्टिकोण के लिए आवश्यक हैं के लिए सत्यापन नियमों का है; प्रिंटिंग उद्देश्यों के लिए एक स्वरूपण दिनचर्या; और एक नियम आधार, एक प्रशासक तंत्र के साथ सत्यापन नियमों को अद्यतन करने के लिए। एक "कैचॉल" नियम जो कहता है कि यह एक मान्य पता है - इसे मैन्युअल रूप से सत्यापित किया गया है - भले ही यह आपके नियम आधार के नियमों में से कोई भी न हो।

घटक: 1 पता कई पंक्तियों से बना है जिनमें से प्रत्येक में अनुक्रम अनुक्रम संख्या और कई टैग (आमतौर पर एक) हैं। एक पता रेखा, नियमों के नियमों और नियमों के संस्करणों के साथ भी संबद्ध होना संभव है, जिनके खिलाफ उन्हें सत्यापित किया गया था, लेकिन यह एक परिशोधन है जो आपके अपडेट/डालने/गणना दरों पर निर्भर करता है।

2 पता टैग शहर की तरह चीजें हैं; नगर; घर का नंबर; और पते की विभिन्न पंक्तियों की पहचान करें। एक पता रेखा होना संभव है जिसमें कोई टैग न हो, लेकिन इस मामले में, लाइनों के पूर्ण सेट पर केवल सामान्य खोज (उदाहरण के लिए न्यूयॉर्क) संभव है। "सिटी = न्यूयॉर्क" के लिए खोजें) संभव नहीं हैं।

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

पहले पांच पात्रों एक "क्षेत्र कोड" का प्रतिनिधित्व

जिप कोड एक पते की अंतिम पंक्ति में होना चाहिए

।।। नियम समूहों और सेटों (जैसे यूएस पते) में विभाजित किए जाएंगे नियम नियमों के साथ-साथ पता डेटा को संदर्भित करने में सक्षम होना चाहिए।

  1. आपकी सत्यापन दिनचर्या को पते की रेखाएं लेने और नियमों को लागू करने की आवश्यकता होती है (आमतौर पर सेट द्वारा)। यह एक बुलियन - वैध या अमान्य पता और वैकल्पिक रूप से नियमों के सेट के खिलाफ मान्य होगा।

  2. प्रिंटिंग दिनचर्या फिर से एक निर्धारित पता प्रदान करने के लिए पता डेटा पर उचित नियम सेट (संभवतः आपके सत्यापन सेट से अलग) लागू करेगी।

मुझे आशा है कि अन्य componenets समग्र दृष्टिकोण से स्पष्ट कर रहे हैं।

यह दृष्टिकोण इन मुद्दों अपने प्रश्न में पहचान के साथ सौदा करने का इरादा है:

  1. फोन कोड का विभाजन।

  2. उपयोग में संभावित क्षेत्र कोड की सीमित संख्या।

  3. विशिष्ट उद्देश्यों के लिए आरक्षित फोन नंबरों के ब्लॉक।

  4. डेटा का सामान्यीकरण - डेटा सामान्यीकृत है। हालांकि, इस प्रकार के सामान्यीकरण (रिवर्स इंडेक्सिंग) का उपयोग आमतौर पर डेटा वेयरहाउस सॉफ़्टवेयर और बड़े पैमाने पर वास्तविक समय सेंसर जानकारी वाले डेटाबेस को छोड़कर नहीं किया जाता है। यह संभव है कि इस समाधान को लागू करने में आप डुप्लिकेट डेटा (नियंत्रण) को चुनने का अंत कर सकते हैं। यह समाधान का एक निहित हिस्सा नहीं है, लेकिन सुविधाजनक हो सकता है।

  5. मैं दृढ़ता से सुझाव देता हूं कि प्रत्येक संस्करण के लिए कक्षाएं न जोड़ें - यह स्केलेबल और न ही बनाए रखने योग्य है।

  6. खोज नीचे विस्तार से कवर किया गया है।

  7. राक्षस तालिकाओं से बचा जाता है - नियम आधार वास्तविक डेटा के अतिरिक्त सैकड़ों से कम हजारों नियमों का आदेश होने की संभावना है।

  8. समाधान स्केलेबल है - कोई बस नियम जोड़ता है या संशोधित करता है।

और भी कुछ संबंधित समस्याओं से निपटने के।

  1. भले ही आप पते के राष्ट्रीय स्वरूपों के लिए सत्यापन नियम लागू कर सकें, फिर भी हमेशा विशेष देश के मानकों के अपवाद होंगे। मेरा अपना पता एक उदाहरण है - मैं एक नाव पर रहता हूं, और डाकघर मानक पते के ऊपर और ऊपर, मेरे पते में शामिल अतिरिक्त जानकारी की आवश्यकता है। इस तरह के विसंगतियों को हमेशा मैन्युअल हस्तक्षेप की आवश्यकता होती है - इसलिए मैन्युअल हस्तक्षेप द्वारा स्वीकार किए जाने वाले नियम।

  2. विभिन्न देशों के पते के लिए अलग-अलग आदेश हैं - उदाहरण के लिए चीन में पते लिखे गए हैं: देश; पोस्ट कोड; शहर; सिटी जोन; सड़क का नाम; घर का नंबर; व्यक्ति का नाम

  3. किसी ऐसे क्षेत्र से पहले पते की स्वीकृति जहां आपके पास कोई नियम नहीं है, और देश के नियम आपके द्वारा रिकॉर्ड किए गए किसी भी से अलग हैं।

  4. लोग "उनके" पते से अलग (उदाहरण के लिए एक कार्यालय) पते का उपयोग करना चाहते हैं।

  5. विशिष्ट व्यक्तिगत संबोधन चिंताओं - कोई अपने निकटतम और प्यारे से अपने पत्राचार को छिपाने की इच्छा रखता है।

  6. समाधान को समस्याओं की तरह बढ़ाया जा सकता है - उदाहरण के लिए किसी व्यक्ति का जिक्र करना। इसमें खिताब शामिल हो सकते हैं - डॉ, रेव, आदि; हाइफेनेटेड नामों को गुणा करें (ffoulkes-symthe); योग्यता (सीपीए, बीएससी, आदि; और पारिवारिक योग्यता (तीसरा, आदि); और व्यक्ति संस्कृति के आधार पर नामकरण के कई तरीके (भारतीय उपमहाद्वीप के लोगों के पास अक्सर परिवार का नाम नहीं होता है, और प्रत्येक के पास एक अलग उपनाम होगा ।)

  7. को संबोधित कर नियमों में किए गए परिवर्तन (एक नया विकास के लिए एक नया पिन कोड के अलावा जैसे) आसानी से और जल्दी बनाया जा सकता है

समस्याएं अभी भी उत्पन्न होने वाले हैं:।

  1. खोज कुछ हद तक अधिक जटिल होगी cated - विशिष्ट पता फ़ील्ड के बजाय सभी पंक्तियों और पते के संबंधित टैग खोजने की आवश्यकता

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

संपादित करें:

मैं जब मैं अपने प्रतिक्रिया में लिखा था बिगटेबल के बारे में पता नहीं था। इस पर बहुत तेज नजर रखने के बाद, यह एक बहुत ही समान अवधारणा प्रतीत होता है। एसीआईडी ​​विकास में इसे लागू करने के लिए मुझे लगता है कि यह संपर्क डेटासेट के लिए और नियम डेटा बेस के लिए संभव है।अनुभव से मुझे पता है कि यह इस तरह के वातावरण में संपर्क विवरण के 5 * 10^7 सेटों तक आसानी से स्केल करता है (हालांकि पृष्ठभूमि के साथ, संपर्क विवरण की गैर-महत्वपूर्ण महत्वपूर्ण सत्यापन)।

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

मैंने चर्चा में सहायता के लिए मेरे दृष्टिकोण के लिए एक स्कीमा का एक स्केच सेट किया। यह स्कीमा कुछ एम: एन कनेक्शन का उपयोग करती है, जो स्पष्ट रूप से सहयोगी तालिकाओं के रूप में कार्यान्वयन में सामान्यीकृत की जाएगी। यह पाठक के लिए एक अभ्यास के रूप में छोड़ दिया गया है :-)। मैंने कुछ तालिकाओं में कुछ नमूना विशेषताओं और डेटा डाल दिए हैं।

alt text

स्केच में, नियम सेट के संपादन; नियम; और अन्य नियमों (प्रशासनिक आवेदन) से संबंधित नियम स्पष्ट रूप से पता उपयोगकर्ता पर एसक्यूएल सामान्य सीआरयूडी संचालन द्वारा एसीआईडी ​​गुणों के साथ किया जा सकता है; पता; और पता रेखा उपयोगकर्ता द्वारा इनपुट के रूप में पता पंक्तियों को लेते हुए, एसीआईडी ​​/ एसक्यूएल तरीके से समान रूप से किया जा सकता है। आप सड़क नाम से घर संख्या (मेरे उदाहरण में) अलग करने के लिए लेनदेन के कुछ प्रीप्रोकैसिंग करना चाह सकते हैं और इसके परिणामस्वरूप "सड़क नाम" नियम खो सकते हैं। अन्य प्री-प्रसंस्करण जो उपयोगी होने की संभावना है पूंजीकरण का मानकीकरण है - हालांकि यह सत्यापन चरण का हिस्सा भी हो सकता है। इनपुट के रूप में पूरी लाइन "9 रिचमंड रोड" को स्वीकार करना भी संभव है, और इसे "मान्यताओं की आवश्यकता" के रूप में टैग करें। किसी भी मामले में इस लेनदेन एसीआईडी ​​बनाने के बारे में कोई समस्या नहीं है (जिसे मैं जानता हूं)।

जहां मैं कम स्पष्ट हूं कि सत्यापन और बाद में टैगिंग को एसीआईडी ​​/ एसक्यूएल लेनदेन में कैसे शामिल किया जा सकता है। ऐसा लगता है कि प्रमाणीकरण चरण एसीआईडी ​​बनाने के लिए, नियम सेट के खिलाफ परीक्षण के आवेदन को ऑर्डर करना आवश्यक हो सकता है (पहले परीक्षण किए जाने वाले सबसे आम मामलों के साथ, और सत्यापन सफल होने पर रोकना)। यह भी आवश्यक हो सकता है कि लेनदेन एसीआईडी ​​बनाने के लिए, केवल अपने सबसे आम मामले के खिलाफ मान्य करने के लिए, दूसरों को "आवश्यकता सत्यापन" के रूप में टैग किया गया, जिसे तब पृष्ठभूमि कार्य के रूप में किया जाएगा।

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

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

जब इस अवधारणा के लिए अधिक विस्तृत संसाधनों की बात आती है तो मुझे दो समस्याएं होती हैं।

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

अधिक महत्वपूर्ण कारण यह है कि इस विचार के कुछ स्रोत गोपनीय या गुप्त हैं। मेरे कामकाजी करियर में, मेरे काम का हिस्सा प्रौद्योगिकी विकास के साथ अद्यतित है, और दस साल के समय में व्यापार पर प्रौद्योगिकी के प्रभाव की भविष्यवाणी करता है। इसमें अनुसंधान प्रयोगशालाओं का दौरा करने और विभिन्न विषयों के बारे में प्रमुख शोधकर्ताओं के साथ चर्चा करने शामिल थे। जबकि मैं नहीं हूं, स्वयं, प्रथम श्रेणी के शोधकर्ता, मैं दूसरों के शोध प्रयासों को संश्लेषित करने में बहुत अच्छा प्रतीत होता हूं। हालांकि, ऐसा करने के दौरान मैं हमेशा वाणिज्यिक गोपनीयता और/या सैन्य गोपनीयता की शर्तों के तहत काम कर रहा था। मेरे किसी भी उत्तर ने इन शर्तों का उल्लंघन नहीं किया है। इसके परिणामस्वरूप मैं केवल अस्पष्ट दिशानिर्देश दे सकता हूं कि जानकारी कैसे प्राप्त की गई थी।

मेरे स्रोत हैं:

  1. एक संगोष्ठी आईबीएम में, द्वारा सी जे तिथि का आयोजन किया, सामान्यीकरण की आगे पहुँच और रिलेशनल मॉडल (नहीं रिलेशनल मॉडल एसक्यूएल में लागू के रूप में) की खोज। इसमें पांचवें (?) और छठे (?) सामान्य रूपों की खोज शामिल थी।

  2. मेटा डेटा पर चर्चा करते समय, ओरेकल तकनीकी कर्मचारियों के साथ चर्चा की एक श्रृंखला; मेटा मेटा डेटा; और ऐसे अन्य सामान्यीकरण।

  3. यूके स्थित सैन्य अनुसंधान प्रतिष्ठान के साथ चर्चा। हालांकि यह कुछ साल पहले था, मुझे यकीन नहीं है कि जिन विषयों पर हम चर्चा कर रहे थे उन पर कुछ भी प्रकाशित किया गया है या नहीं।

  4. एक बड़े वित्तीय संस्थान में काम कर रहा है जिसका संपर्क विवरण सिस्टम मेरे प्रस्ताव की तरह आकार दिया गया था, लेकिन गैर-संबंधपरक जड़ों से उत्पन्न हुआ; और जिसके लिए मूल तकनीकी गति एक युग में अंतरिक्ष की बचत थी जब स्मृति, लगातार स्मृति, और बैक अप क्षमता एक प्रमुख चिंता थी।

संपादित करें:

मैं ऊपर संपादित करें पूरा, अपने कंप्यूटर चुप रहो, कुछ घर के काम किया था, बिस्तर के पास गया, ley नीचे, अपनी आँखें बंद कर, और मैं भाग का हल था मैं उस पिछले संपादन में पूरा नहीं कर सका।

हालांकि जब काम के अधिकांश टैगिंग/सत्यापन करना वास्तव में पढ़ना और तुलना करना है तो अपडेट होने पर अपडेट होते हैं। जैसे कि यह आशावादी लॉकिंग के लिए एक प्रमुख उम्मीदवार है।

Start read transaction 
    Read set of address lines where one or more lines are "Needs Validation" 
    Read all rule set names 
    Read all rule lines which belong to the first rule set 
    If read is not successful then abandon and start process again 
End read transaction 
Do while address not validated and not end of rule sets 
    If set of address lines validates against first rule set then 
    prepare transaction by allocating the tags to be applied to each line of the 
    address and temporarily recording the rule set that has validated the address 
    Start validation transaction 
     Read same set of address lines and rule set (all fields) 
     Is the address and the rule set identical to what was obtained in the read 
     transaction? 
     If identical then 
     create appropriate set of Tag Usage records 
     if successful then 
      commit validation transaction 
      end overall process 
     if not successful or 
     if not identical then 
      rollback validation Tag and Tag Usage 
      ** This is the point where there might be problems if the rule set has 
      changed since reading it. The ordering may have changed due to amendment 
      deletion or creation of rule sets. This is the reason for the read of all 
      the read set names initially. However if there is such a change one can 
      afford to fail to validate and move on, aiming to come back to this address 
      later. 
    End of validation transaction 
    Start read transaction 
     Read rule lines which belong to the next rule set 
    End read transaction 
End while loop 
If end of rule sets reached and address not validated 
    begin create Tag Usage transaction 
    create tag usage pointing to Tag "Manual Intervention needed" 
    end create Tag Usage transaction 

सभी तीन लेन-देन की (पता, पता पंक्ति अद्यतन, नियम सेट, नियम अद्यतन, और टैग, टैग प्रयोग अपडेट) प्रकार एसिड शर्तों को पूरा: छद्म कोड में इस प्रकार दिखाई देगा। मैं दृढ़ता से विश्वास करता हूं (लेकिन साबित नहीं हुआ है) कि इन तीन प्रकार के लेन-देन के किसी भी इंटरलिविंग, संयोजन या अंतर को निर्धारित करने से एसीआईडी ​​की स्थिति भी पूरी हो जाएगी।

+0

उपर्युक्त उत्तर गैर-रोमन वर्णमाला - रूसी, चीनी, हिंदी इत्यादि के विस्तार की अनुमति भी देता है –

+0

के लिए तीन विचार करने की दिलचस्प अवधारणा डेटा सेट, मुझे यकीन नहीं है कि आप एसीआईडी ​​/ एसक्यूएल पर्यावरण में इसे कैसे कार्यान्वित कर सकते हैं। ऐसा लगता है कि यह लगभग बिगटेबल है। क्या आप इस अवधारणा के लिए और अधिक विस्तृत संसाधनों के बारे में जानते हैं? – Incognito

0

संभवतः कम से कम फ़ोन नंबरों के लिए already answered। आप पोस्टल कोड के लिए कुछ ऐसा कर सकते हैं।

+0

काफी नहीं। फोन नंबर समस्या का एक उदाहरण हैं, और जिस समस्या में मुझे रूचि है, – Incognito

0

यदि मैं इसे कार्यान्वित करता हूं तो मैं नियमित रूप से फोन नंबर, ज़िप कोड इत्यादि को सहेजता हूं। विशेष रूप से डेटा को अंत उपयोगकर्ता को प्रारूप के प्रारूप में संग्रहीत किया जाना चाहिए। (मान लें कि प्रत्येक अंतिम उपयोगकर्ता की वही ज़रूरत है।) उदा। एक जर्मन एड्रेस होने: "रोडनाम 123", अमेरिकी एड्रेस? "123 रोडनाम"। ज़िप कोड के लिए ऐसा करना, उन्हें शहर के नाम से जोड़ना। आप पते को address_line_1 के रूप में सहेज सकते हैं (सड़क का नाम, उपयोगकर्ता द्वारा दर्ज किए गए देश के विशिष्ट क्रम में घर का नंबर), address_line_2 (डाक कोड, शहर का नाम ...)।

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

मुझे लगता है कि प्रत्येक देश के लिए लेखन सत्यापन जबरदस्त काम होना चाहिए, यह 200 देश है ... आप कैसे सुनिश्चित कर सकते हैं कि आपने कुछ स्थानीय सम्मेलनों को याद नहीं किया? आप एक समारोह eq लिख सकते हैं कि उदाहरण के लिए eq ("एबीसीडीई -34", "एबीसीडीई.34") == सत्य का मूल्यांकन करता है।

हालांकि मुझे क्लाइंट साइड और सर्वर साइड सत्यापन लिखने में वास्तव में बिंदु नहीं दिखाई देता है। यहां तक ​​कि यदि ग्राहक एक वेब ब्राउज़र है, तो आप AJAX के माध्यम से सर्वर के सत्यापन का उपयोग कर सकते हैं।

अंत में यह आपके द्वारा उपयोग किए जा रहे डीबीएमएस (जावा संग्रहीत प्रक्रियाओं के लिए समर्थन?) पर निर्भर करता है, आपकी क्लाइंट साइड भाषा ... डेटा कैसे दर्ज किया जाता है (क्या यह एक वेब ब्राउज़र में बहुत गलत तरीके से दर्ज किया गया है?) और आप इसके साथ क्या करना चाहते हैं। (क्या आप स्काइप को अपने डेटाबेस से फोन नंबरों के साथ खिलाने की योजना बना रहे हैं या क्या ये इंसानों द्वारा पढ़े जाते हैं जो उन्हें अपने फोन में टाइप करते हैं?) क्या आपको कुछ विशिष्ट जॉइन ऑपरेशन करने की ज़रूरत है? और निश्चित रूप से यह निर्भर करता है कि आप उस समस्या को हल करने के साथ कितने आदमी-घंटे खर्च करने में सक्षम हैं ...

संबंधित मुद्दे