質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.46%
SQL

SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

データベース

データベースとは、データの集合体を指します。また、そのデータの集合体の共用を可能にするシステムの意味を含めます

データベース設計

データベース設計はデータベースの論理的や物理的な部分を特定する工程です。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Q&A

4回答

6920閲覧

住所を「郡市区町村・町名」「番地」「方書」に分割する方法

terater

総合スコア9

SQL

SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

データベース

データベースとは、データの集合体を指します。また、そのデータの集合体の共用を可能にするシステムの意味を含めます

データベース設計

データベース設計はデータベースの論理的や物理的な部分を特定する工程です。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

0グッド

2クリップ

投稿2021/05/18 13:40

前提・実現したいこと

住所データを「住所(県、市区町村・・等)」「番地」「方書」に分割したい

発生している問題・エラーメッセージ

現在個人情報を登録するページがあり、
Webフォームで住所を入力させています。

項目は以下の3つに分断してデータを入力し、データベースに登録させます。
入力項目:「住所(NOT NULL制約)」「番地(NOT NULL制約)」「方書」

なお登録だけではなく、照会するページも存在します。

今回画面からの登録だけではなく、
住民票形式の住所データを断続的に取り込む(読み込む)ことになりました。
こちらは住所の項目に特に区別がなく「住所」との名称1項目で管理されています。

そこで現行システムに住所データ等を取り込む際に、
現行の住所フォーマットのように分割をしたいのですが良い方法が思いつきません。
JavaScriptやSQLでどうにかなるものならば対策を教えてほしいのですが、
このあたりの管理方法について事例等を知っていればご紹介いただきたいです。

【他の解決方法例】
・現行の個人情報を登録するテーブルに住所データを残すのではなく、
住民票形式の取り込み用のテーブルを新たに作成しそこで管理する。
・住所項目に全データで登録し、番地項目には適当なスペース項目を登録する

調査したこと

[住所分割 正規表現]
https://qiita.com/zakuroishikuro/items/066421bce820e3c73ce9

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2021/05/18 13:50

フロントエンドだけだと、住所検索APIの類を使わないといけないんじゃないかな。
guest

回答4

0

本格的にやるには住所マスターを買うんだろうと思ったのですが、ググると、無料でGithubで公開している人がいますね。
日本全国の住所マスターデータをオープンデータとして無料公開 - Geolonia

使うなら、更新が止まったらどうするんだという方針を考えておく必要がありますが。

投稿2021/05/18 14:15

otn

総合スコア84798

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

otn

2021/05/19 04:27

一意に郵便番号の付いている地名だけで良ければ、 これもフリーの郵便番号データを使う手もあります。 「xx県xx市以下に掲載がない場合」のような郵便番号もあるので、全部の町名は網羅してない。
guest

0

日本郵便が郵便番号と住所のcsvを公開していてそこには町字など分割されたデータが入っているのでそのデータとぶつければいいと思いますよ。

投稿2021/05/19 04:17

rysh

総合スコア874

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

Google Maps APIのPlace Details  |  Places API  |  Google Developersなら、
住所を要素分解してるっぽいけど、自分では使ったことがないので、よくわかりません。

投稿2021/05/18 14:04

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

取り込む住所は日本全国でしょうか? 特定の市町村とか地域とかでしょうか? これによってかなり条件が変わると思います。

言わずもがな、日本全国の場合は正規表現での分割はおそらく無理かと思いますので、分割は早々に諦めた方がいいと思います。

(訂正)
m6uさんのコメントを見てもう少し調べてみたら
参考)
https://qiita.com/YSRKEN/items/5371e67950425ace6a73
こんなことしてる人がいるんですね。これが本当に実用性あるかどうかは分かりませんが、頑張ってやってる人はいるようです。
(修正終わり)

逆に特定の市町村とかで範囲が狭いのであれば、ケースによってはすべてのパターンを網羅した正規表現は(頑張れば)作れると思います。表記揺れもあるでしょうから、それはそれで難しいでしょうが。

データの格納についてはなんとも言えませんが、今後の運用を鑑みて問題なさそうであれば「他の解決方法例」のような方法も現実的な選択肢だとは思います。

投稿2021/05/18 13:52

編集2021/05/18 14:00
AbeTakashi

総合スコア4594

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.46%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問