رموز ISO 3166 من المعايير التي يستخدمها الجميع ولا يقرأها أحد تقريبا. تبدو مشكلة محلولة، حرفان وبلد واحد وانتهى الأمر، إلى أن يرفض نموذج إقليما مشروعا، أو تربط تقرير بين جدولين كتب عمود البلد فيهما بصيغتين مختلفتين، أو تشحن قائمة منسدلة بمدخل توقف عن الوجود منذ سنوات.
تشرح هذه المقالة الصور الثلاث لرمز البلد، ولماذا يسبب خلطها انكسارات صامتة، وكيف تندرج رموز التقسيم الإداري تحتها، وما يجب تخزينه والتحقق منه في نظام عليه أن يظل عاملا بينما تتغير القائمة.
الصور الثلاث لرمز البلد
يعرف المعيار الدولي لرموز البلدان ثلاث صور متوازية للمجموعة نفسها من البلدان والأقاليم.
| الصورة | الشكل | الاستخدام المعتاد |
|---|---|---|
| حرفان | حرفان لاتينيان | تبادل البيانات والقوائم المنسدلة ومعظم أعمدة التطبيقات |
| ثلاثة أحرف | ثلاثة أحرف لاتينية | التقارير والمالية والأنظمة التي تريد رموزا أوضح للقراءة |
| رقمية | ثلاثة أرقام | السياقات المحايدة لغويا والأنظمة القديمة |
تغلب صورة الحرفين في البرمجيات. فهي قصيرة، وهي ما تتوقعه معظم الخدمات الخارجية، وتتسع براحة في عمود ثابت العرض. وصورة الثلاثة أحرف أوضح حين يقرأها إنسان خارج سياقها، ولهذا بقيت في التقارير الإحصائية والمالية. وللصورة الرقمية ميزة واحدة يسهل إغفالها: الأرقام محايدة لغويا، والرمز الرقمي أكثر مناعة إلى حد ما أمام بعض أنواع أخطاء النقل من رمز حرفي قصير، لأنه لا يتصادم مع كلمة عادية.
والثلاث تصف المجموعة نفسها من الكيانات. وهذا بالضبط سبب المشكلة: هي متكافئة في المعنى وغير متكافئة في مقارنة النصوص.
لماذا يكسر خلط الرموز عمليات الربط في صمت؟
لا تنجح عملية ربط بين جدولين على عمود البلد إلا إذا استخدم العمودان الصيغة نفسها. فإذا خزن نظام رمز الحرفين وخزن آخر رمز الثلاثة أحرف، أعاد الربط نتيجة فارغة، والفارغ هو بالضبط ما يجعل هذا مكلفا، لأن النتيجة الفارغة يسهل تفسيرها كبيانات ناقصة لا كعدم تطابق في الصيغة.
والمقارنة النصية تزيد الأمر سوءا. فرموز الحرفين والثلاثة أحرف كلها حروف كبيرة، فعمود معرف كنص يقبل أيا منهما بلا اعتراض. وعمود بثلاثة محارف يقبل رموز الثلاثة أحرف ولا يقتطع شيئا، لكنه يقبل أيضا رمز الحرفين مطعما أو كما هو، وقد تتصرف الشيفرة اللاحقة التي لم تتوقع حرفين بشكل غريب من دون خطأ.
والعلاج أن تقرر مرة واحدة، في مكان واحد، ما هي الصيغة القياسية، وأن تحول عند كل حد. خزن صيغة واحدة، واقبل عدة صيغ عند الإدخال، وطبع فورا. ووثق الخيار بجوار العمود، لأن من سيضيف تكاملا لاحقا لن يخمنه.
هل رموز التقسيم هي نفسها التي تستخدمها الجهات المحلية؟
لا، واعتبارها مجموعة واحدة من أشهر مصادر عدم التطابق. يصف جزء التقسيم في معيار رموز البلدان التقسيمات الإدارية الرئيسية تحت مستوى البلد، ويبنى بدمج رمز البلد مع رمز إضافي للتقسيم يفصلهما واصل. وينتج عن ذلك معرف فريد عالميا للتقسيم، وهو مفيد فعلا حين تعبر البيانات الحدود.
أما قوائم الرموز المحلية فأشياء أخرى. الوكالات الإحصائية ومشغلو البريد والجهات الضريبية والهيئات الانتخابية، لكل منها تقسيماته ورموزه لأغراضه. وتتداخل هذه القوائم مع القائمة الدولية ولا تتطابق معها: قد تستخدم أسماء لا يعرفها المعيار، وتجزئ المناطق أو تدمجها بشكل مختلف، وتحدث بجداول زمنية خاصة بها.
والنتيجة العملية أنك لا تفترض أن قيمة من نظام محلي رمز تقسيم دولي صحيح، ولا ترسل رمزا دوليا إلى نظام يتوقع رمزا محليا. أبق الاثنين منفصلين، وخزن رمز البلد بجوار أي قيمة تقسيم حتى يظل الزوج قابلا للتفسير.
هل يجوز اختراع رموز خاصة بك؟
لا. الرموز المخترعة لا تميز عن الصحيحة، وهذه هي المشكلة. سلسلة من حرفين تبدو معقولة ولا تطابق أي بلد ستمر من فحص المحارف، وسترتب بانتظام بين المدخلات الحقيقية، وتفشل في مكان بعيد—عند ملصق شحن، أو حساب ضريبي، أو تجميع تحليلي تتوقف مجاميعه عن الجمع في صمت.
وعادتان تمنعان معظم الضرر. تحقق من رموز البلدان مقابل قائمة حقيقية محدثة لا مقابل نمط، وعامل أي قيمة خارج القائمة كمشكلة تستحق الإظهار لا كقيمة تستحق التخزين. وحيث تحتاج مجموعة البيانات فعلا إلى خانة لشيء مجهول—استيراد غير موثوق، أو مستخدم رفض الإجابة—استخدم رمزا صريحا موثقا لا يمكن الخلط بينه وبين رمز بلد، وأبعده عن أي عمود يفترض أن يحمل رموزا حقيقية.
من أين تأتي الرموز القديمة أو المجهولة؟
المعيار ليس مجمدا. تضاف مدخلات وتعاد تسميتها وتسحب مع تغير العالم، والنظام الذي يعمل منذ سنوات يراكم قيما من عدة إصدارات. يصل البريد بالرمز الذي كانت تعرفه قاعدة بيانات المرسل، وتنتشر جداول بيانات برموز كانت صحيحة عند تصديرها.
وثلاث حالات تستحق التخطيط. رمز سحب لكنه ما زال يظهر في سجلات قديمة. ورمز موجود في المعيار لكنه غير موجود في قائمتك المنسدلة، لأن قائمتك بنيت مرة ولم تحدث. وقيمة ليست رمزا إطلاقا، لأن إنسانا كتب اسم بلد في حقل أراد رمزا.
والتعامل يختلف في كل حالة. يمكن للسجلات التاريخية أن تحتفظ بقيمتها الأصلية بينما تستخدم السجلات الجديدة قيمة حالية، بشرط تخزين الخريطة بينهما في مكان ما. ورمز ناقص من قائمتك لا ينبغي رفضه كغير صحيح، لأن الخلل أقرب إلى القائمة من القيمة. وأسماء البلدان الحرة يجب ألا تصل إلى عمود الرموز إطلاقا، وهو ما يعالجه دليل التحقق من العنوان والتطبيع كجزء من مشكلة التنظيف الأوسع.
للمطورين: التخزين والقوائم والاحتياط
اختر صيغة قياسية واحدة للتخزين—لمعظم التطبيقات رمز الحرفين—وكن صارما بشأنها داخل نظامك. وأبق التحويل في دالة مساعدة واحدة حتى يكون تغيير الرأي تغييرا في مكان واحد.
واختر مصدرا واحدا للقائمة التي تستخدمها القوائم المنسدلة والتحقق والعرض، وحدثه عمدا. فالقائمة التي تحرر يدويا في عدة أماكن ستنفصل عن نفسها، والعرض المرئي لذلك هو مستخدم في بلد لا يعرضه النموذج.
وقرر ما يعني مجهول في مخططك قبل أن تحتاجه. القيمة الفارغة والرمز الموثق والقيمة الغائبة ثلاثة تصريحات مختلفة، وواحد فقط منها صحيح لحقل معين. وأيا اخترت، تأكد أنه لا يمكن الخلط بينه وبين رمز حقيقي في عملية ربط أو مقارنة أو إنشاء وسوم.
وأخيرا، سجل ما رفضته. وعندما يفشل رمز بلد في التحقق، سجل القيمة وإصدار القائمة لا السجل كله. فهذه هي الطريقة الموثوقة الوحيدة للتمييز بين قاعدة سيئة وإدخال سيئ، وهي تبقي البيانات الشخصية خارج التشخيص. وإذا كان الحقل يغذي أيضا رقم هاتف، فالمبدأ نفسه ينطبق على بادئة الاتصال، كما يشرحه دليل بادئة الهاتف ومطابقة الموقع.
الخطوات التالية
ابحث عن كل عمود في مخططك يحمل بلدا وتحقق مما إذا كانت كلها تستخدم الصيغة نفسها؛ واستعلام تجميع سريع على القيم المميزة سيظهر أي عمود يحمل خليطا. ثم تأكد من أن قائمة التحقق يمكن تحديثها من مصدر واحد لا من تحرير في عدة أماكن.
ولرؤية الرموز في سياقها، افتح صفحة البلد وقارن كيف يعرف البلد هناك مع كيف تسميه بياناتك أنت. وإذا احتجت سجلات نموذجية لاختبار التحويل بين الصيغ، فأنشئ دفعة في أداة إنشاء العنوان ومرر الرموز عبر دالة التطبيع لديك. وتلك السجلات تحمل قيما وهمية فقط، فالرموز فيها مادة تدريب—لا عنونة قابلة للتسليم ولا تصريحا عن سكن أي شخص.