私は、hereのように位置認識アプリケーションを設定しています。私はGISアプリケーションについて多くのことを学んだことがあり、私が最初に提案した設定についていくつか変更することにしました。今はpostgis拡張を使ってpostgresqlデータベースを使用して幾何学的フィールドを許可し、それを埋めるためのTIGER/Lineデータ。 TIGER/Lineデータは、異なる解像度(レイヤー)で異なるデータセットを提供しているようです。州、郡、ジップ、ブロックなどのデータがあります。できるだけ細かい粒度分解能を使用して住所に投稿を関連付ける方法が必要です。PostGISを使用して場所に投稿を割り当てるよい方法
たとえば、できるだけ特定の通り(最高の解像度)に投稿を関連付けることができます。通りでなければ、特定の郵便番号(あまり具体的ではない)。郵便番号でない場合は特定の郡(具体的ではない)など。 Sidenote:私は最終的にこれらすべてを地図上に表示したいと思います。
これは私が提案するものです。
場所
id -- int
street_name -- varchar -- NULL
postal_code_id -- int -- NULL
county_id -- int -- NULL
state_id -- int
郵便コード
id -- int
code -- varchar
geom -- geometry
郡
id -- int
name -- varchar
geom -- geometry
状態テーブルが似ており、あなたが見ることができるようにように...
は、場所のテーブルには、フィールドが設定されているものは何でもにより特異性のレベルを決定します。郵便番号、郡、および州のテーブルは、外部キーによって結ばれていません(すべての場所で有効な適切な階層を判断するには複雑すぎます)。しかし、ジオメトリフィールドを使用してその関係を判断する方法があると考えています特定の郵便番号がどの州に含まれているのか、またはどの郵便番号が特定の州に属しているかを照会する)。
データベースが拡大した場合(データベースに地区やブロックのデータを含めることにします)、そのデータ用に別のテーブルを追加してから別の外部キーを追加することができますテーブル(例えば、block_id)。
誰かがこれを行うより良い方法を知っていますか?