4

時空間データを保持するためのリレーショナル DB テーブルを設計するためのベスト プラクティスに興味があります。具体的には、そのようなテーブルに保持されるデータは、特定の有効期間、ジオメトリ定義、および階層的側面を持つカスタム ジオメトリです (特定のジオメトリは他のジオメトリの子になります)。

誰かがこのテーマに関する優れた資料を教えてくれたり、特定の実装を提案してくれたりしてくれませんか。

ありがとうございました。

4

1 に答える 1

3

ジオメトリタイプにPostGIS(http://postgis.refractions.net/)を使用して、次のようなテーブルを作成します。

CREATE TABLE data (
    geometry geometry,
  valid_from timestamp,
  valid_till timestamp,
  check(valid_till >= valid_from)
);

PostGISは空間クエリを実行できるため、特定のジオメトリ内のすべてのジオメトリについてデータベースにクエリを実行できます(たとえば、州または郡を表すジオメトリ内のすべてのジオメトリに対してクエリを実行できます)。

有効期間を取得するには、このクエリに、行のみを取得するための追加の条件を追加する必要があり(valid_from >= now() and valid_till <= now())ます。

もちろん、3つの列すべてにインデックスも必要です。ジオメトリ列には、空間インデックスが必要です。

PostGISサイトで見つけることができる空間クエリとジオメトリタイプとジオメトリインデックスに関するすべての情報。

于 2011-05-03T05:47:18.730 に答える