現在、住所データは次のように保存されています。
string suiteNumber (ie. unit number)
string streetNumber (building number)
string streetName
string streetDirection (N/NW/S/etc.)
string streetType (rd/st/ave/etc.)
// ... etc. (postal code/city/province/state/country
しかし、アドレスを処理してインポートするときに、最初の5つのアドレス部分を解析するという(私が言えることから一般的な)問題に直面しています。
番地が単なる文字列(データベース内のvarchar)であれば、これらすべてが大幅に簡単になると思います。
なぜそのままにしておくべきかという2つの議論があります。1。通りの名前や番号などだけで検索できると検索が簡単になりますが、次の行に沿ったSQLスクリプトを考えています。 SELECT x FROM Address WHERE streetAddress LIKE "%INPUT%"; 確かにそれほど高速ではありませんが、機能します(そして、その検索のデータセットは顧客のみにあり、私たちが保存したすべてのアドレスのセットよりも信じられないほど小さいです)。
- 現在、アパートにフラグを立てるシステムがあります。住所Aの1人がアパートであることがわかった場合は、フラグを立てます。その番地/番地にいる他のすべての人を検索して、フラグを立てます(これは重要な場合があります)。ビジネスニーズ)
アドレスには無数の例外があるため、私はすでにそれらをすべて文字列として保存しています。
だから私は尋ねます、住所の部分を別々に保管する必要がある/したい特別な理由はありますか?