DBにおける郵便番号の扱い

いくつものシステムを開発してきて毎回困ることがある…。

郵便番号の妥当性をどのようにチェックするか?
郵便番号のデータをどこから取得するか?

特にユーザの登録データを実際に資料配布などで利用する場合
(もちろん利用承諾を得たうえでのはなし)
無効な郵便番号がDBに登録されていると問題である。

考えられる方法。

  1. 郵政省の郵便番号一覧を取得する。

http://www.post.japanpost.jp/zipcode/dl/jigyosyo/lzh/jigyosyo.lzh

  1. そのファイルから既存データとの差分を割り出し

新規登録番号はINSERT,
統合・廃止番号はUPDATE, DELETEするバッチを作成する。

って方法しか取れないのかなあ…。
なんか泥臭い。。

SOAPなんかでのサービスを郵政省は始めないものだろうか?