Menu

Định dạng mã bưu chính của các quốc gia

Định dạng mã bưu chính khác nhau rất nhiều giữa các quốc gia: có nơi dùng toàn chữ số, có nơi trộn chữ và số, có nơi không có hệ thống nào. Bài này chỉ ra các cái bẫy thường gặp khi lưu và kiểm tra.

Đăng ngày

  • dữ liệu thử
  • địa chỉ
  • kiểm thử

Định dạng mã bưu chính là thứ dễ bị giả định sai nhất khi bạn làm sản phẩm cho nhiều quốc gia, vì thói quen ở nước mình thường được coi là chuẩn chung. Bài này tổng hợp những dạng mã bưu chính đang tồn tại, giải thích vì sao số không ở đầu lại hay bị mất, và chỉ ra những chỗ cần kiểm tra trước khi bạn viết quy tắc kiểm tra cho biểu mẫu.

Mã bưu chính sinh ra để làm gì?

Mã bưu chính là một chuỗi ngắn giúp việc phân loại thư tín nhanh hơn. Thay vì đọc cả dòng địa chỉ để biết lá thư cần đi tới vùng nào, hệ thống chỉ cần đọc một nhóm ký tự đã được quy ước. Nhờ vậy, thư được chia theo tuyến và theo điểm phát sớm hơn rất nhiều.

Điều đáng chú ý là mã bưu chính phục vụ việc vận chuyển, không phục vụ việc định danh hành chính. Nó không phải là một đơn vị hành chính, không thay thế tên tỉnh hay thành phố, và trên nguyên tắc, cơ quan bưu chính có thể sửa hoặc bổ sung mã mà không cần thay đổi bất kỳ ranh giới nào.

Vì sao không phải quốc gia nào cũng có mã bưu chính?

Có những quốc gia và vùng lãnh thổ chưa từng vận hành hệ thống mã bưu chính, hoặc chỉ dùng nó ở một phần lãnh thổ. Với những nơi đó, người dân thường không biết mã bưu chính của mình là gì, và các biểu mẫu quốc tế buộc phải cho phép bỏ trống trường này.

Trong công cụ trên trang này, khi bạn chọn một quốc gia như vậy, phần mã bưu chính sẽ hiện thông báo rằng quốc gia đó không dùng mã bưu chính. Đây là một tình huống kiểm thử rất đáng có: nếu biểu mẫu của bạn bắt buộc nhập mã bưu chính, khách hàng ở những nơi đó sẽ bị chặn ngay ở bước đăng ký, và họ sẽ phải gõ một giá trị giả như bốn số không để đi tiếp.

Mã bưu chính toàn chữ số và mã trộn chữ với số

Hai họ định dạng lớn nhất là toàn chữ số và trộn chữ với số. Nhóm thứ nhất chỉ dùng các chữ số, phần lớn nằm trong khoảng bốn đến sáu ký tự, và đây là dạng mà nhiều người mặc định là duy nhất. Nhóm thứ hai xen kẽ chữ cái với chữ số; Canada, Vương quốc Anh, Hà Lan và Ireland là những ví dụ thường được nhắc tới.

Trong nhóm trộn, lại có một kiểu chia nhỏ đáng chú ý: mã được chia thành phần đầu chỉ khu vực và phần sau chỉ điểm phát cụ thể. Vương quốc Anh và Hà Lan là hai ví dụ cho cách chia này. Với kiểu mã đó, việc so khớp theo tiền tố sẽ cho bạn biết vùng, còn phần đuôi mới quyết định địa chỉ cụ thể.

Kiểu mã bưu chính Thành phần Ví dụ về cấu trúc
Toàn chữ số Chỉ gồm chữ số Một nhóm bốn đến sáu chữ số
Trộn chữ và số Chữ cái và chữ số xen kẽ Như mã của Canada hoặc Ireland
Phân đoạn Vùng, rồi điểm phát Như mã của Vương quốc Anh hoặc Hà Lan

Vì sao số không ở đầu lại hay bị mất?

Đây là lỗi kinh điển và nó không liên quan gì tới bưu chính. Nếu mã bưu chính được lưu trong một cột kiểu số nguyên, thì chuỗi có số không ở đầu sẽ bị hiểu thành con số tương ứng và mất luôn những số không đó khi hiển thị lại. Mã bưu chính là nhãn phân loại, không phải số lượng, nên nó phải được lưu dưới dạng chuỗi.

Vấn đề còn xuất hiện ở tầng trao đổi dữ liệu. Khi một tệp dữ liệu được mở bằng bảng tính, bảng tính có thể tự đoán kiểu và cắt mất số không đầu tiên. Cùng một mã, nếu đi qua ba hệ thống mà chỉ một trong ba ép kiểu số, bạn sẽ nhận được hai giá trị khác nhau cho cùng một địa chỉ.

Có phải mỗi quốc gia chỉ có một độ dài mã bưu chính cố định?

Không. Ngay trong một quốc gia, độ dài có thể thay đổi theo thời gian khi cơ quan bưu chính mở rộng hoặc điều chỉnh hệ thống. Vì vậy, câu hỏi đúng không phải là quốc gia này có mấy chữ số, mà là quốc gia này chấp nhận những dạng nào, và bạn có cho phép bổ sung dạng mới mà không phải sửa mã nguồn hay không.

Cách làm an toàn là coi độ dài và bộ ký tự như một bảng cấu hình theo quốc gia, có thể cập nhật độc lập với phần còn lại của hệ thống. Nếu bạn muốn xem cấu trúc địa chỉ của từng nơi trước khi chốt cấu hình, hãy đọc bài định dạng địa chỉ quốc tế.

Tra cứu nhanh theo quốc gia

Khi cần một mã bưu chính đúng định dạng để thử biểu mẫu, bạn không phải tự đoán. Trình tạo địa chỉ giả của trang này tạo mã bưu chính theo quy tắc của quốc gia bạn chọn, đồng thời giữ cho mã đó khớp với thành phố và đơn vị hành chính đi kèm. Bạn có thể xem cách trình bày của từng nơi ở các trang quốc gia như Việt Nam hay Canada, rồi đối chiếu với mẫu sinh ra.

Vì dữ liệu là tổng hợp, mã bạn nhận được không tương ứng với một điểm phát thật nào và chỉ nên dùng cho kiểm thử phần mềm.

Phần dành cho nhà phát triển

Việc chọn kiểu dữ liệu cho trường mã bưu chính quyết định rất nhiều lỗi về sau. Hãy lưu dưới dạng chuỗi, giữ nguyên số không ở đầu, và chỉ cắt khoảng trắng thừa ở hai đầu chứ đừng tự ý bỏ dấu cách bên trong, vì một số quốc gia viết mã thành hai nhóm có dấu cách ở giữa.

Những điểm khác nên chốt sớm:

  • Xác định rõ trường này bắt buộc hay tùy chọn theo từng quốc gia, thay vì bắt buộc cho toàn bộ hệ thống.
  • Chuẩn hóa chữ hoa cho những quốc gia dùng chữ cái, nhưng đừng đổi chữ số thành chữ cái hay ngược lại.
  • Cho phép cấu hình theo quốc gia được cập nhật mà không cần phát hành phiên bản mới của ứng dụng.
  • Kiểm thử cả trường hợp để trống, trường hợp có dấu cách ở giữa, và trường hợp chuỗi chỉ gồm chữ số không ở đầu.
  • Đừng dùng cùng một quy tắc kiểm tra cho mọi quốc gia chỉ vì biểu mẫu của bạn trông có vẻ đã đủ.

Bước tiếp theo

Hãy rà lại cột lưu mã bưu chính trong cơ sở dữ liệu của bạn và chắc chắn rằng nó là chuỗi, không phải số. Sau đó mở trình tạo địa chỉ giả, chọn vài quốc gia có kiểu mã khác nhau, và thử dán kết quả vào biểu mẫu để xem quy tắc kiểm tra hiện tại có chặn nhầm trường hợp hợp lệ nào không.

Đọc tiếp

Bài viết về Trình tạo địa chỉ giả