首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何为大陆、国家、区域、城市和POI设计数据库?

如何为大陆、国家、区域、城市和POI设计数据库?
EN

Database Administration用户
提问于 2012-04-09 22:26:02
回答 3查看 3.2K关注 0票数 5

我不是一个数据库设计师,所以我在用GIS信息设计数据库时遇到了困难。目标是建立一个由大陆、国家、地区(包括州、分区域、省)、城市和城市中的地方组成的体系。这些元素中的每一个都将包含一些文本信息和相关内容。作为数据库,我们将将PostgreSQL与PostGIS结合使用。

我的问题是,如何为这个系统设计数据库?我在想两个表-- polygonspoints,但我不确定这是否是一种好的思维方式。

实际上,我们需要的是国家、城市、地区等之间关系的层次化基础。应用程序的主要目标是从不同的城市、地区、国家等多个来源收集旅游数据,并将其存储在数据库中。假设我们有一个罗马城,我们从几个来源收集有关这个城市的一些信息到数据库中。我们需要知道罗马在罗马省,拉齐奥分区在拉齐奥地区,意大利。因此,这个体系应该是灵活的,允许我们从现实世界中创造出这样的关系。

所以我会选两张桌子:

  1. polygons --可存储国家、地区、次区域、省等.
  2. points -可以存储城市和POI
EN

回答 3

Database Administration用户

回答已采纳

发布于 2012-06-10 12:01:18

我建议两种选择

选项1:如果您想要一个RBDM,我认为两个表就足够了

代码语言:javascript
复制
Table 1 (Lookup)
-LocationID
-Continent
-country
-region
-City
-Landmark (granularity)

在这个表中,因为它是一个查找,所以我建议保持它的非规范化,它将在加入表、搜索和报告时节省大量的代码。维护更容易,然后是5个单独的表。

另一个表是用来收集数据的表。

代码语言:javascript
复制
Table 2 (Master)
-Tourist
-LocationID
-ExtraFields
-...

所以在这张表格里你要做的就是存储关于游客的信息,这是你的粒度,这样的话,就有地标,城市,地区,国家,大陆,因为地标明确地在一个城市,城市在一个国家,这个国家在一个地区。(不需要5个表将它们分开,如果维护不当,很有可能出现无效的输入或数据)

备选案文2:

我建议图形数据库,检查这个张贴在所以,关于使用Neo4J进行地理信息系统和基于Neo4J的GIS的一个实现。

票数 2
EN

Database Administration用户

发布于 2012-06-07 06:31:03

每个子表有一个外键,五个表怎么样:

大陆,国家,地区,城市,地标。

或一个具有类型列的自引用表。

票数 1
EN

Database Administration用户

发布于 2013-11-01 20:25:01

迟了回答,但是..。

假设您可以找到您提到的地理主题的数据,那么为什么不将每个地理位置存储在各自的数据库表中呢?

城市:点数

地标:点

区域:多边形

国家:多边形

大陆:多边形

然后,您可以简单地使用PostGIS (ST_Intersect)中的空间相交来根据它们相交的多边形给出正确的属性。

您可以创建一个点的视图,其中包含“region”的计算列(或任何您希望附加到该点的多边形数据),该视图调用连接到区域(或国家或大陆)数据的ST_Intersect函数.

也许是这样:

代码语言:javascript
复制
 create view PointsWithGeography as (

select cityPoints.name

,countryPolys.name

from cityPoints join countryPolys 

on st_intersects(citiesPoints.geom, countryPolys.geom)

        )

那么,对于您的报告等,只需使用视图!

因此,您的点包含属性信息,该属性信息是根据join / st_intersects...you的空间信息动态生成的,它甚至可以嵌套“空间联接”,并从相交多边形层调用尽可能多的列,就像like...all动态的那样!五个表中的每一个都可以单独编辑/维护.

票数 1
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/16277

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档