Related Tables Extension

此扩展允许GeoPackage包含与地理空间(例如,要素)或属性数据相关的附加数据。例如,这可用于在特征(例如,点、线或面)和多媒体文件之间建立多对多关系。根据定义,关系的“左边”是“基本”数据,关系的“右边”是“相关”数据。

../../../_images/related_tables.png

图1:相关表扩展

gpkg_extensions

要使用此扩展,请按照表1中的说明向该表中添加行。

表1: gpkg_extensions :宽度:20 15 15 40 10:标题-行:1

table_name

column_name

extension_name

definition

scope

gpkgext_relations

NULL

gpkg_related_tables

http://docs.opengeospatial.org/is/18-000/18-000.html

read-write

实际自定义映射表名称

NULL

gpkg_related_tables

http://docs.opengeospatial.org/is/18-000/18-000.html

read-write

gpkgext_relations

此表描述了扩展关系。要定义关系,请在此表中添加一行,其中包含表2中描述的列。

表2: gpkg_metadata :宽度:20 80:标题-行:1

价值

id

主键

base_table_name

包含要关联的基础数据(例如要素)的表的名称

base_primary_column

中的主键列的名称 base_table_name

related_table_name

包含相关内容的表的名称

related_primary_column

中的主键列的名称 related_table_name

relation_name

关系的名称(配置文件)

mapping_table_name

客户名称 [user-defined mapping table] (#自定义映射表)

提示

若要进一步定义关系的语义,请考虑使用 Schema Extensionmapping_table_name 列。

自定义映射表

用户定义的映射表描述了基础数据和相关数据之间的多对多关系。用户定义的映射表至少需要表3中定义的列。

表3:自定义映射表:宽度:20 80:标题-行:1

价值

base_id

基本数据表的主键值

related_id

相关数据表的主键值

在此表中为每个相关对添加一行。

使用配置文件

此扩展提供许多配置文件。每个配置文件都添加了一些专门的规则,以使关系更有意义。

媒体

relation_name 一段关系的关键是“ 媒体 “,则相关表必须是 attributes 至少包含表4中定义的列的表:

提示

如果要避免数据重复,请向用户定义的映射表中添加包含数据哈希的列。这样,您可以在添加表之前检查介质是否已存在。

简单属性

relation_name 一段关系的关键是“ simple_attributes “,则相关表必须是 attributes 表,且该表必须具有文本、整数或实数列(无BLOB或NULL)。