أحتاج إلى تخزين الرموز البريدية في قاعدة بيانات. ما هو حجم العمود؟

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

سؤال

أتوقع أن يكون العمود varchar2 ، في قاعدة بيانات Oracle الخاصة بي.

zips الأمريكية 9.

الكندي هو 7.

أفكر في أن 32 حرفًا ستكون الحد الأعلى المعقول

ماذا ينقصني؟

تحرير] TIL: 12 إجابة معقولة على السؤال بفضل كل من ساهم.

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

المحلول

القشط من خلال صفحة الرموز البريدية في ويكيبيديا, ، يجب أن تكون 32 حرفًا أكثر من كافية. أود أن أقول حتى 16 حرفًا جيدًا.

نصائح أخرى

كما أثار بالفعل من قبل @Neil-McGuigan ، لدى Wikipedia صفحة لائقة حول هذا الموضوع. بناءً على أن 12 حرفًا يجب أن تفعل ذلك: http://en.wikipedia.org/wiki/list_of_postal_codes

يسرد مقال ويكيبيديا ~ 254 دولة ، وهو أمر جيد فيما يتعلق UPU (الاتحاد البريدي العالمي) لديه 192 دولة عضو.

لماذا تعلن حجم الحقل أكبر من البيانات الفعلية التي تتوقع تخزينها فيه؟

إذا كانت النسخة الأولية من التطبيق الخاص بك ستدعمنا والعناوين الكندية (التي أستنتجها من حقيقة أنك تسمي تلك الأحجام في سؤالك) ، فسأعلن أن الحقل باسم varchar2 (9) (أو varchar2 ( 10) إذا كنت تنوي تخزين الواصلة في حقول ZIP+4). حتى بالنظر إلى المنشورات التي قام بها الآخرون إلى الرموز البريدية عبر البلدان ، فإن Varchar2 (9) أو Varchar2 (10) سيكون كافيًا لأكثر البلدان الأخرى إن لم يكن جميعها.

أسفل الخط ، يمكنك دائمًا تغيير العمود لزيادة الطول في حالة الحاجة. ولكن من الصعب عمومًا منع شخص ما ، في مكان ما من اتخاذ قرار للحصول على "إبداعي" ويحكم 50 حرفًا في حقل varchar2 (50) لسبب أو لآخر (أي لأنهم يريدون سطرًا آخر على ملصق شحن). يجب عليك أيضًا التعامل مع اختبار الحالات الحدودية (هل سيعرض كل تطبيق يعرض مقبض zip 50 حرفًا؟). ومع حقيقة أنه عندما يقوم العملاء باسترداد البيانات من قاعدة البيانات ، فإنهم يقومون بشكل عام بتخصيص الذاكرة استنادًا إلى الحد الأقصى لحجم البيانات التي سيتم جلبها ، وليس الطول الفعلي للصف المحدد. ربما ليست صفقة كبيرة في هذه الحالة المحددة ، ولكن يمكن أن تكون 40 بايت لكل صف جزءًا لائقًا من ذاكرة الوصول العشوائي لبعض المواقف.

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

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

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

ما عليك سوى إنشاء ثلاثة أو أربعة حقول عناوين Varchar2 (50) [على سبيل المثال] واترك المستخدم يدخل ما يريدون.

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

تطبيع؟ يمكن استخدام الرموز البريدية أكثر من مرة ، وقد تكون مرتبطة بأسماء الشوارع أو أسماء المدن. جدول (طاولة) منفصلة.

الرموز البريدية الكندية ليست سوى 6 أحرف ، في شكل أحرف وأرقام (lnlnln)

نشرت المملكة المتحدة معايير: كتالوج معايير بيانات حكومة المملكة المتحدة

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 

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

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

لمعلوماتك ، فإن Varchar (20) يكفي لتخزين الرموز البريدية

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