时空数据的表设计

Ale*_* N. 5 postgresql database-design relational-database temporal-database

我对设计用于保存时空数据的关系数据库表的最佳实践感兴趣。具体来说,将保存在此类表中的数据是具有一定有效期、几何定义以及分层方面的自定义几何图形(某些几何图形将是其他几何图形的子代)。

我很好奇是否有人可以向我指出有关该主题的好材料或可以建议具体的实施。

谢谢。

Szy*_*ski 3

我将使用 PostGIS ( http://postgis.refractions.net/ ) 作为几何类型并制作如下表格:

CREATE TABLE data (
    geometry geometry,
  valid_from timestamp,
  valid_till timestamp,
  check(valid_till >= valid_from)
);
Run Code Online (Sandbox Code Playgroud)

PostGIS可以进行空间查询,因此您可以在数据库中查询特定几何图形中的所有几何图形(例如,查询代表州或县的几何图形中的所有几何图形)。

要获取有效期,您应该向此查询添加附加条件,以仅获取 所在的行(valid_from >= now() and valid_till <= now())

当然,您还需要所有三列上的索引。几何列上应该有一个空间索引。

您可以在 PostGIS 站点上找到有关空间查询以及几何类型和几何索引的所有信息。