الرمز البريدي لمدينة / ولاية والعكس بالعكس في قاعدة البيانات؟

StackOverflow https://stackoverflow.com/questions/518026

  •  21-08-2019
  •  | 
  •  

سؤال

وأنا جديدة على قواعد بيانات SQL والعلائقية ولدي ما أتصور هي مشكلة مشتركة.

وأنا جعل موقع على شبكة الانترنت، وعندما يقدم كل مستخدم آخر لديهم لتوفير موقع إما في الرمز البريدي أو المدينة / الدولة.

ما هو أفضل الممارسات للتعامل مع هذا؟ يمكنني ببساطة إنشاء الرمز البريدي والمدينة وحالة الجدول والاستعلام ضدهم أم أن هناك حلولا جاهزة للتعامل مع هذا؟

وأنا باستخدام SQL Server 2005 إذا أنه يحدث فرقا.

وأنا بحاجة إلى أن تكون قادرة على استرداد الرمز البريدي إعطاء المدينة / الولاية أو أحتاج إلى أن أكون قادرا على بصق الدولة المدينة إعطاء الرمز البريدي.

هل كانت مفيدة؟

المحلول

لديك بضعة خيارات. يمكنك شراء مكتبة الأكبر البريدي رمز من شخص والتي سوف قائمة رموز البريدي والمدن والمقاطعات ، وما إلى ذلك من قبل الدولة، أو يمكنك دفع مبلغ من المال ل الوصول إلى خدمة الإنترنت التي من شأنها أن تؤدي نفس الوظيفة على أكثر من مستوى الحبيبية.

وأفضل رهان سيكون للذهاب مع خيار مكتبة الرمز البريدي الرمز، لأنها سوف يكلفك أقل من خدمة الإنترنت، وسوف توفر أداء أفضل. كيف الاستعلام أو قبل هذه العملية مكتبة متروك لكم. أذكر لكم SQL Server بحيث كنت ربما تريد الدولة، الرمز البريدي، والمدينة الجداول، وتشمل العلاقات ذات الصلة بينهما. أنت أيضا بحاجة إلى أحكام للمدن التي تمتد zipcodes متعددة، أو zipcodes التي لديها العديد من المدن - ولكن أيا من هذه القضايا لا يمكن التغلب عليها

وبقدر ما تتعامل مع vagarities من إدخال المستخدم، قد تفكر بطلب المساعدة من <لأ href = "http://www.serviceobjects.com/products/address/address-validation-(us)؟zut = ggl3001 "يختلط =" noreferrer "> عنوان خدمة ويب التحقق من صحة ، على الرغم من أن معظمها تتطلب عنوان الشحن الكامل من أجل التحقق من صحة.

وتحرير: يبدو وكأنه هناك مشروع سورس تقدم مجانا بيانات البريدي رمز ، بما في ذلك خطوط الطول / العرض البيانات، الخ غير متأكد من كيفية تصحيح أو تيار هو عليه.

وتحرير 2: بعد بعض سطحية تبحث في الموقع هذا المشروع سورس ويبدو أن هذا هو مشروع ميت. إذا كنت تستخدم هذه البيانات، سوف تحتاج إلى توفير بعض بدل لzipcodes / المدن التي لم تكن موجودة في قاعدة البيانات الخاصة بك. مكتبات السائبة التي تم شراؤها تأتي عادة مع بعض نوع من الضمان التحديثات، أو خطة التسعير للحصول على التحديثات، وما إلى ذلك، وربما تكون أكثر موثوقية.

نصائح أخرى

ويكون الجدول الرمز البريدي الذي يرتبط إلى جدول CityState. بعض رموز البريدي لديها العديد من المدن المرتبطة بها، لذلك قد تحتاج إلى أن يكون واجهة تتيح للمستخدم تحديد من المدينة التي تريد أو السماح لهم تجاوز الافتراضي.

ويمكنني استخدام الخدمة المدفوعة من ZipInfo.com منذ أن كنت بحاجة إلى معلومات إضافية مثل كما طويلة، اكتب / خطوط الطول والرمز البريدي ومقاطعة. رموز البريدي أيضا تغيير عدة مرات في العام كما يتم إضافة رموز بريدية جديدة أو دمج مع الآخرين، لذلك سوف تحتاج إلى تحديث البيانات الخاصة بك بضع مرات في السنة على البقاء متسقة.

واعتمادا على تفاصيل ما كنت بناء، الصرخة لديها الأحياء API التي قد تكون قادرة على الحصول على ما تحتاج إليه. تأكد من تحقق شروط استخدامها والاشياء للتأكد من البقاء في الامتثال.

وأنا أعلم أن هذا ليس الجواب مركزية ديسيبل، ولكن ما تفعلونه قد لا يكون من الأفضل التعامل معها في قاعدة البيانات نفسها.

إذا سبب البحث هو الراحة للمستخدم، وهنا نهج بديل لا يتطلب ترخيص أي قواعد بيانات خارجية:

ومجرد بحث المدينة / الدولة من الجدول اسم / عنوان الموجودة لديك، وفرت الرمز البريدي مباريات. إذا كان شخص ما جعلت سبق إدخال هذا الرمز البريدي، ثم ستجد المدينة والدولة من هذا الإدخال. IF أي إدخال السابق موجودا، ثم أسوأ الحالات لدى المستخدم لإدخال في المدينة والدولة.

وهذا الحل يفترض حاجتك للراحة للمستخدم. إذا كنت أكثر قلقا حول التحقق من صحة دقيقة من المدينة والولاية، رموز البريدي ثم كنت أفضل حالا الترخيص قاعدة بيانات التحقق منها.

وهناك العديد من خالية من الترميز الجغرافي خدمات ويب حيث يمكنك الحصول على الرمز البريدي من المدينة الدولة، والعكس بالعكس. نلقي نظرة على خدمة ويب GeoNames. هل يمكن أن تفعل شيئا من هذا القبيل تحقق ديسيبل الخاص بك، ومن ثم إذا ما كنت تبحث عن يست هناك، والاستيلاء عليها من خدمة ويب وإضافته.

وما أفهمه هو أن USPS API الويب عبارة تتردد في استخدام، ولكن يتطلب إذن هذا يعتمد على عدد من العوامل، بما في ذلك طبيعة البرنامج الذي سيتم استخدامه والسبب كنت في حاجة إلى البيانات.

إذا كنت مؤهلا لاستخدامها، وهذا سيكون من المفترض المصدر الأكثر دقة للحصول على المعلومات التي تحتاج إليها.

وليس على يقين من أنني أفهم السؤال. هل تحتاج إلى السماح إما و، في وقت لاحق، والعودة على حد سواء؟

وعليك أن تكون حذرا، حتى مع وجود قاعدة بيانات الرمز البريدي / المدينة التي يمكن شراؤها، لأن بعض مدن تمتد الكود البريدية متعددة، لذلك لا يمكنك دائما "حساب" في هذا الاتجاه. مشكلة مشابهة في الاتجاه المعاكس.

وهناك المكتبات التي يمكنك شراء واستيراد ليست مكلفة. مشكلتك معهم ستكون أنه سيكون لديك تكلفة الجارية صيانة معها (ليس كثيرا). الرموز البريدية تتغير طوال الوقت، وهذا يعني أنه في 6 موس أو نحو ذلك، والبيانات الخاصة بك وسوف يكون قليلا عفا عليها الزمن. قد ترغب في النظر في التواصل مع خدمة مثل خرائط جوجل. نحن هنا استخدام نهج هجين. نحن صرف المبلغ من المال للحصول على التحديثات إلى البيانات كل 6 أشهر، وإذا كان الرمز البريدي ليست في الجدول ان تحقق ضد خرائط جوجل للتأكد من أن المعلومات التي تم إدخالها لا تزال صالحة وأنها مجرد لم يتم إدخال في نظامنا. إذا كان صحيحا، نقوم بتحديث النظام، إذا لم نكن السماح للمستخدم معرفة الذي ارتكب خطأ.

وثمة خيار آخر يتمثل في ping على موقع USPS. أعتقد أن لديهم مدينة / دولة تبدو حتى الصفحة عن طريق الرمز البريدي.

لجداول الولايات الولايات المتحدة، يمكنك استخدام التالية الاستعلام، على افتراض لديك StateId وStateName في الجدول States وكان لديك زيادة السيارات StateId.

وهذا الاستعلام لديها 50 دولة الولايات المتحدة ...

INSERT INTO States
        ( StateName )
        VALUES
( 'Alabama'),
( 'Alaska'),
( 'Arizona'),
( 'Arkansas'),
( 'California'),
( 'Colorado'),
( 'Connecticut'),
( 'Delaware'),
( 'District of Columbia'),
( 'Florida'),
( 'Georgia'),
( 'Hawaii'),
( 'Idaho'),
( 'Illinois'),
( 'Indiana'),
( 'Iowa'),
( 'Kansas'),
( 'Kentucky'),
( 'Louisiana'),
( 'Maine'),
( 'Maryland'),
( 'Massachusetts'),
( 'Michigan'),
( 'Minnesota'),
( 'Mississippi'),
( 'Missouri'),
( 'Montana'),
( 'Nebraska'),
( 'Nevada'),
( 'New Hampshire'),
( 'New Jersey'),
( 'New Mexico'),
( 'New York'),
( 'North Carolina'),
( 'North Dakota'),
( 'Ohio'),
( 'Oklahoma'),
( 'Oregon'),
( 'Pennsylvania'),
( 'Puerto Rico'),
( 'Rhode Island'),
( 'South Carolina'),
( 'South Dakota'),
( 'Tennessee'),
( 'Texas'),
( 'Utah'),
( 'Vermont'),
( 'Virginia'),
( 'Washington'),
( 'West Virginia'),
( 'Wisconsin'),
( 'Wyoming');

وأنا حصلت على هذا الفوز. وهنا على واحد مجانا (من نوع ZIP، CSV):

مستضافة في maphacks.com

والرؤوس هي الرمز البريدي والمدينة والدولة، وخطوط العرض والطول، والتوقيت، التوقيت الصيفي

والآن، الخسارة المحتملة الخاصة بك هو أنك لا تدفع للحصول على التحديثات (والتي يمكن لدغة لك في النهاية، ولكنها محاولة للحفاظ على تحديثه إلى حد ما)

وأود أن أضيف هذا الموقع.

http://www.unitedstateszipcodes.org/zip-code-database/

ويمكنك تنزيل البيانات مجانا إذا كنت تستخدم لشخصية / للتربية (اعتبارا من 2014/3/20).

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top