特征和数据集丰富的地图应用程序的数据库设计

问题描述 投票:0回答:0

我目前正在为 Web 应用程序设计一个全新的 PostgreSQL+PostGIS 数据库。这个应用程序基本上必须做三件主要的事情:

  1. 在地图上显示数据集;
  2. 允许用户创建特征和数据集;
  3. 显然执行 GIS 查询。

我们讨论的数据将是纯矢量的,主要是多边形、一些线和一些点。现在我卡住的地方是什么是构建我们将拥有的数据的最佳方式。

基本上会有这几组数据:

  • 预定义数据(如国家、城市、地区及其多边形、地址点);其中一些数据将针对特定城市、特定国家/地区;
  • 版主会添加的动态功能,会有很多关联数据;
  • 用户生成的内容关联数据少;

到目前为止我想出的是:

  • 表格国家、地区、城市、地区——包含名称、多边形和其他有关这些地区的数据,包括彼此之间的外键关系;
  • 主持人添加功能的表格:一个用于多边形,另一个用于线(无点);这将基本上只托管地理位置数据和主键——这将连接到其他表中的相关数据;
  • 用户生成内容的表格:多边形、线、点;同样,只有地理位置数据和主键,才能与其他表中的元数据相关联;
  • “数据集”表,有关数据集的信息,如名称、更新日期、主键;
  • 数据集关系表-特征关系;
  • 其他多个文本数据表,与版主添加和用户生成的功能相关。

现在将有一个基于用户选择和添加到地图的能力的工作流前。因此,数据集表和关系表。

我卡住的地方是如何构建这些特征数据集关系。我想拥有“预定义”数据集是合乎逻辑的,例如国家,该国家/地区的城市等。这意味着在数据集表中将有两个额外的列,例如“预定义”和“table_pointer”,后者的名称为这些功能存在的表,这样我就不必将每个数据集的表硬编码到应用程序代码本身中。这意味着所有表都必须具有或多或少相同的基本结构。用户生成的数据集只是将“预定义”列设置为 false,这意味着所有特征都取自特征数据集关系表。这符合逻辑吗?

基本上我试图保持尽可能多的特征组/数据集彼此分离(不让用户生成的特征和国家在同一个表中),但是我不确定如何在数据集中保持逻辑连接和分组.也很有可能是我想太多了,它比我想象的更容易实施。

有什么想法吗?

database postgresql gis postgis
© www.soinside.com 2019 - 2024. All rights reserved.