2015-10-02 7 views
6

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

  • मेरी डेटाबेस में मैं अपने ही शहर हैं, 9000 के रिकॉर्ड के आसपास:

    समस्या यह है कि मैं इन सभी शहरों के साथ एक गड़बड़ है।

  • प्रदाता एक मुझे 6000
  • आसपास प्रदाता बी मुझे एक और 5000
  • प्रदाता सी देता है प्राप्त करने के लिए अपने एक्सेल या वेब सेवा देता है ... आदि

मेरी प्रदाताओं द्वारा दिए गए शहरों में से कुछ हैं पहले से ही मेरे डेटाबेस में और मुझे केवल आवश्यक आवश्यक डेटा अपडेट करना होगा।

अन्यथा, मुझे अपने डेटाबेस में वह नया शहर डालना होगा।

और यह हर बार एक प्रदाता मुझे इन शहरों का अद्यतन देता है।

ठीक है, मुख्य समस्या यह है कि मैं उन्हें से अलग ढंग से एक शहर कहते हैं, और वे एक दूसरे से अलग ढंग से ... कैसे जानना चाहते हैं कि मैं पहले से ही है कि शहर है या मैं के बाद से उपयोग हम एक नया एक बनाने के लिए है अलग-अलग नाम?

जिस तरह से मैं इसे देखता हूं, मैं केवल इसे मैन्युअल रूप से प्राप्त कर सकता हूं। खानों के साथ अपने शहरों की तुलना।

बेशक

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

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

क्या इसके लिए मेरा कोई बेहतर समाधान है? कोई सार्वभौमिक कोड जिसे आप आमतौर पर उपयोग करते हैं या कोई अन्य अपहरण करते हैं?

संपादित करें: ठीक है, प्रत्येक शहर एक देश से संबंधित है। बेशक, मैं उस पर विचार कर रहा हूँ।

मेरी शहर तालिका में मेरे पास प्रत्येक गंतव्य के लिए एक आईडी है, और फिर प्रत्येक प्रदाता के ऑपरेशन कोड के लिए एक कॉलम (मुझे पता है, यह बेहतर रिश्ते के साथ बेहतर प्रतिनिधित्व किया जा सकता है), साथ ही देश कोड, ज़िप, यूआरएल एसईओ ...

मैग्नसएल द्वारा उल्लिखित समाधान का सम्मान करते हुए, समानार्थी तालिका बनाने के लिए, मुझे समानार्थी को संग्रहीत करने की आवश्यकता क्यों होगी? लिवेनस्टीन और मानव संपर्क के साथ आपके द्वारा वर्णित लिपि के बारे में, यह वही है जो मैं वर्तमान में कर रहा हूं:

प्रत्येक प्रदाता और मेरी गंतव्यों तालिका द्वारा प्रदान किए गए प्रत्येक रिकॉर्ड के साथ। एक प्रदाता शहर के रिकॉर्ड को देखते हुए, मैं अपनी मेज से अधिक संयोग दिखा रहा हूं।

लेकिन इससे पहले, मैं उन सभी को स्वचालित रूप से लिंक करता हूं जो ज़िप कोड और देश में संयोगी हैं।

यह मेरे प्रदाताओं को प्रत्येक शहर के लिए विशेष ऑपरेशन कोड अपडेट करने के लिए बहुत सारे काम है। मैं इस बारे में उत्सुक हूं कि लोग इस समस्या से कैसे निपटते हैं, मुझे यकीन है कि बहुत से डेवलपर्स को किसी बिंदु पर इसका सामना करना पड़ता है।

+0

कितने प्रदाता हैं और क्या उनके पास हमेशा शहर के लिए समान नाम है या कोई नियम नहीं है? उदाहरण के लिए, "शिकागो" के लिए एक प्रदाता हमेशा "CHICAGO" देता है या यह "शिकागो" या कुछ भी समान हो सकता है? मैं सोच रहा हूं कि आप शायद कुछ आंतरिक "एआई" बना सकते हैं जो प्रत्येक प्रदाता के लिए-> से जानकारी मैप करके समय में सीखेंगे। – Vladan

+0

क्या आपके सभी शहर एक ही देश से हैं? क्या वैकल्पिक वर्तनी, गलत वर्तनी या विभिन्न भाषाओं के कारण शहर के नामों में मतभेद हैं? –

+0

@ फ्रैंकिसइटन डोर्टोर्ट नहीं, पूरी दुनिया में। हां, अलग-अलग वर्तनी, गलत वर्तनी और यहां तक ​​कि भाषाएं भी। – vivoconunxino

उत्तर

0

क्या होगा यदि आपने नाम अनुवाद के लिए एक अतिरिक्त तालिका का उपयोग किया है? आईई, तालिका में 2 कॉलम होंगे: कॉलम ए जिसका नाम आप उपयोग करते हैं, कॉलम बी, नाम प्रदाता का उपयोग करता है। आप की तरह लग रहे करने के लिए, मैन्युअल रूप से इस तालिका अनुकूलन करने की ज़रूरत हो सकती है:

Bruxelles:Brussels 
Bruxelles:Brussel 
Bruxelles:Bruxelles 

जबकि आयात करने, शहर के नाम के लिए आप तो प्रयोग करेंगे

select A where B = Brussels 

अपने समुच्चयित डेटाबेस में, नाम तो होगा संगत।

+0

यह मुझे कोई काम नहीं बचाता है, मुझे अभी भी अनुवाद तालिका – vivoconunxino

+0

बनाने के लिए मैन्युअल रूप से तुलना करना होगा, वास्तव में एक बड़े काम की तरह मैन्युअल रूप से लगता है, मैं शहरों की जरूरतों के आधार पर मौजूदा सूचियों को विलय करने की सोच रहा था। मुझे कुछ ऐसी शहर सूचियां मिलीं, लेकिन कुछ भी नहीं – user1747036

+0

क्षमा करें, पिछले संपादन में प्रवेश करें ... मैन्युअल रूप से एक बड़े काम की तरह लगता है, मैं मौजूदा सूचियों को विलय करने की सोच रहा था ... उदाहरण के लिए यूरोप पर विचार करना, आप उस तालिका को उत्पन्न करने के लिए 26 पृष्ठों (https://en.wikipedia.org/wiki/Names_of_European_cities_in_different_languages:_A तक ज़ेड) को आसानी से एक स्क्रिप्ट बना सकते हैं। – user1747036

3

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

एक थोड़ा जटिल है, लेकिन मैं भविष्य सबूत लगता है, कार्यप्रवाह आपका मुख्य डेटा में शहर के नाम के स्थान पर आईडी नंबर का उपयोग करने के लिए है तालिका। फिर उन आईडी नंबरों के साथ एक स्थान तालिका सेट करें, जो प्राथमिक कुंजी और शहर के आपके पसंदीदा नाम के रूप में देश कोड, ज़िप कोड, डब्लूजीएस 84 निर्देशांक, महाद्वीप नाम, जो भी हो, के लिए आवश्यक मेटा डेटा कॉलम के बाद। शहर नाम समानार्थी के लिए एक और तालिका जोड़ें, केवल आईडी संख्याओं और नामों के साथ (आईडी कॉलम पर UNIQUE बाधा के बिना)।

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

(हाँ, यह वहाँ पाने के कोडिंग का एक बहुत है कि आप इसे इसके लायक है या नहीं मिलता है, तो आप कितनी बार अपडेट करना पर निर्भर करता है।।)

युक्ति: विकिपीडिया शहरों पर अलग-अलग नाम के साथ लेख है, यानी https://en.wikipedia.org/wiki/List_of_names_of_European_cities_in_different_languages

+0

मुझे शुरुआत में आपको समझ में नहीं आया, मेरे मेटाडाटा को एक बार मेरे शहर से जोड़ने के लिए एक अच्छा विचार हो सकता है। तो मैं अपने शहरों से संबंधित अधिक अलग ज़िप प्राप्त कर सकता था (कभी-कभी ज़िप प्रदाता भिन्न होता है क्योंकि वे एक ही शहर के हैं लेकिन थोड़ा अलग क्षेत्र हैं, इसलिए वे मेरे पहले प्रयास में मेल नहीं खाते हैं) – vivoconunxino

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