勝手バトン(BlogPet)
いつも、うまだは
・郵政公社文の郵便番号データをそのままDBに投入するのは用途によってはよろしくない。
とか思ってたらしいの。
*このエントリは、BlogPet(ブログペット)の「れぷすけ」が書きました。
| 日 | 月 | 火 | 水 | 木 | 金 | 土 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | ||||
| 4 | 5 | 6 | 7 | 8 | 9 | 10 |
| 11 | 12 | 13 | 14 | 15 | 16 | 17 |
| 18 | 19 | 20 | 21 | 22 | 23 | 24 |
| 25 | 26 | 27 | 28 | 29 | 30 | 31 |
いつも、うまだは
・郵政公社文の郵便番号データをそのままDBに投入するのは用途によってはよろしくない。
とか思ってたらしいの。
*このエントリは、BlogPet(ブログペット)の「れぷすけ」が書きました。
八月二日を楽しみにしていました。
百パーセント勝つと思っていました。
長い試合でしたが、よくがんばったとおもいます。
…これだからプロスポーツなんて全て完璧にどうでもいいと思うわたくし。
ここんとこPHPしか触っていない。PHP確かに便利だなぁ。しかし、全国郵便番号台帳を作ってて幾つかツボったので、ここにメモっておく。
・PHPのfgetcsvはマルチバイト環境下で正しく動かないケースがある。
どういう実装にしたらこうなるのか理解に苦しむが、一般的な半角ダブルクオーテーションで囲まれてる値が全角文字列でそれらに特定文字コードが存在している、という条件下のとき、正しく値を解釈してくれない時がある。動作確認したのは内部エンコーディングShift_JISでPHPのバージョンは4.3.9。
例えば、福島県田村郡小野町にある角十という地名がcsvの中に含まれていたらアウト。沖縄県八重山郡竹富町にある新城も同じくアウト。
おそらく全角文字の1バイト目に0xF8のコードがあればアウト。これはまずいと思う。結局自作のcsv解釈関数で対処。
・郵政公社配布の郵便番号データ
をそのままDBに投入するのは用途によってはよろしくない。
これは郵便番号の採番がよくないとは思うんだが、所謂「平成の大合併」でやたら増えた地名に対応しきれていない感じ。
例えば徳島県美馬市の一部地域。郵便番号で言うと777-0301
。
余談だけど、美馬市
、っつーか徳島県、吉野川流域は江戸時代に藍の栽培がヒッジョーに盛んで全国で9割超えるようなシェアを握ってたところだ。だから藍取引で財を成した大商人の邸宅後なんかが有名史跡。「うだつがあがる」の「うだつ」語源とかがソレ。
で、問題なのは郵政公社配布の郵便番号データのうち、同一郵便番号で複数行にわたっているデータだ。
郵便番号データはJIS自治体コード、7ケタ郵便番号、県名、市区郡町村名、地名…などと並んでいるのだが、例えばgooでの検索結果では市区郡町村名と地名を連結して表示している。
1. 777-0301 徳島県美馬市木屋平(市初、今丸、尾山、カゴミ、樫原、木中、桑柄、ケヤキヒラ、小日浦、
2. 777-0301 徳島県美馬市地神滝、菅蔵、杖谷、葛尾、ハジコノ、ビヤガイチ、二戸、三ツ木、貢、
3. 777-0301 徳島県美馬市南張、向樫原)
これ、正しくはこう表示されるべき。
777-0301 徳島県美馬市木屋平(市初、今丸、尾山、カゴミ、樫原、木中、桑柄、ケヤキヒラ、小日浦、 地神滝、菅蔵、杖谷、葛尾、ハジコノ、ビヤガイチ、二戸、三ツ木、貢、 南張、向樫原)
そりゃー些細なことかもしれんが、少なくとも正しくないし、僕の感覚でいけば「絶対許せない」表示になってしまうわけ。データベース投入前データを加工するのはよくないので、郵便番号検索プログラム側で対処する予定。この問題は木屋平に限らず、全国各地のおそらく人口密度低めのところで頻出するはず。
「木屋平なんて旧で言う村だしそこのエリアの人口何人よ」とか絶対言わないように。調べてみたら1200人ちょいだったけど気にしたら負けだ。
山の中なのにもかかわらず地名に「平」があるからヘンだと思って調べてみたら、案の定、平家の落人が拓いたとこだったのね。ちなみに四国、それも山の中方面出身で名字に「平」の字がある人は平氏の末裔なケースが多いです。もちろん「自称末裔」さんも含みますが。
で、この些細な問題のおかげで、全国ぶんの住所16万件に対して、データベースサーバが一時間に許可する問い合わせ回数が30万件。なのでデータ16万件を一括投入して、間違ったデータが含まれていることが判明したら1時間後にやり直すという斬新なゲームを十分に堪能しました。
・郵政公社配布の事業所の個別郵便番号が古い。
平成の大合併に対応してませんがな、このデータ。最新版が2006年7月末なのに。とはいえ置換するガッツが今のところないので、データが古い件は気づかなかったことにします。
郵便番号データを気前よくフリーで配ってくれるのは嬉しいんだけど、XML-RPCとかSOAPでアクセスできるAPI公開してくれませんかのう。郵政公社様。それがITってもんだと僕は思いますよ。
や、決して郵便番号データベースメンテナンスツール作るのがダルイとかじゃなくて。
きっといきてるよ!