النقاط الرئيسية

  • احتفظ بـ rawAddress بالإضافة إلى الحقول التي تم تحليلها
  • تخزين الرموز البريدية وأرقام المنازل كنص
  • استخدم مستويات إدارية اختيارية بدلاً من حالة ثابتة واحدة
  • قم بالتقاط صورة للعنوان الذي يستخدمه الطلب

التأليف والمراجعة

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

مدخلات منفصلة، والمكونات التي تم تحليلها، والمخرجات المقدمة

المدخلات الأولية هي دليل، والحقول التي تم تحليلها تدعم منطق البحث والأعمال، والخطوط المقدمة تتبع ترتيب البلد. يؤدي الاحتفاظ بواحد فقط إلى منع عمليات التدقيق وترقيات المحلل اللغوي اللاحقة.

قم بتخزين rawAddressLines وparsedComponents وnormalizedAddress وموفر/إصدار التسوية. لا ينبغي أن يؤدي فشل التطبيع إلى تدمير السجل الأولي.

الميداناكتبالغرض
countryCodeCHAR(2)رمز البلد ISO
addressLinesJSON / TEXT[]عدد الخطوط المتغيرة
adminArea1..3TEXT nullableمستويات إدارية مرنة
localityTEXT nullableالمدينة أو الضاحية أو البريد تاون
postalCodeTEXT nullableالحروف والأصفار البادئة
rawAddressJSONالتدقيق وإعادة المعالجة

المعرفات التي تبدو رقمية لا تزال نصية

يمكن أن تحتوي الرموز البريدية وأرقام المنازل على أصفار وأحرف ومسافات وواصلات ونطاقات بادئة. تفقد الأنواع الصحيحة البيانات وتفرض تصحيحات خاصة بكل بلد.

استخدم نص Unicode طوال الوقت. اشتق حدود الطول من مجموعات البيانات الحقيقية وحدود الأعمال، وليس من عينات اللغة الإنجليزية المتوسطة.

type PostalAddress = {
  countryCode: string;
  addressLines: string[];
  adminArea1?: string;
  adminArea2?: string;
  adminArea3?: string;
  locality?: string;
  postalCode?: string;
  rawAddress: unknown;
};

لا تخلط بين السلاسل الفارغة وقيم null والحقول المفقودة

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

لا تقم مطلقًا بملء الأسطر المفقودة بـ N/A أو شرطة؛ تتسرب العناصر النائبة إلى التسميات.

استخدم اللقطات للطلبات وسجلات التدقيق

يمكن أن يتغير إدخال دفتر العناوين، بينما يجب أن يحتفظ الطلب أو الفاتورة بعنوانه التاريخي. يؤدي الرجوع إلى addressId الحالي فقط إلى تغيير السجل.

تم عرض الخطوط والمكونات وحالة التحقق والطابع الزمني في اللقطة.

  • لا تتغير الطلبات مع دفتر العناوين
  • سجل مزود التسوية والإصدار
  • حالة التحقق من الطابع الزمني
  • لا تقم بتسجيل العناوين الحقيقية كاملة دون داع

التحقق من ترحيل البيانات باستخدام حالات اختبار من عدة بلدان

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

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

قم بتشغيل هذه المجموعة على قاعدة بيانات اختبارية نظيفة ونسخة معقمة من مخططات شكل الإنتاج. غالبًا ما تكشف الفهارس الواقعية والقيود والقيم الفارغة القديمة عن سلوك لا يمكن للمخطط الفارغ المثالي إعادة إنتاجه.

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

  • قارن بين سلاسل Unicode وبنية JSON
  • حساب الاقتطاع والترميز والتحويلات الفارغة
  • اقرأ من خلال طبقة التطبيق
  • احتفظ بأداة إعادة تشغيل العنوان الخام

الأسئلة الشائعة

هل يجب أن يحتوي الجدول على أعمدة سطر عنوان ثابتة؟

قد تعرض واجهة المستخدم عددًا ثابتًا، لكن مصفوفة addressLines أكثر مرونة بالنسبة لاختلاف البلد.

هل يجب أن يستخدم الرمز البريدي VARCHAR؟

نعم. يمكن أن تحتوي الرموز البريدية على أحرف ومسافات وواصلات وأصفار بادئة.

لماذا تحتفظ بـ rawAddress؟

وهو يدعم التدقيق وتصحيح الأخطاء اللغوية وإعادة المعالجة بعد ترقيات المحلل اللغوي.

المصادر والقراءات

  1. MDN: مستويات العناوين وحقول الملء التلقائي
  2. W3C: أنماط العناوين الدولية