Related Tables Extension¶
此扩展允许GeoPackage包含与地理空间(例如,要素)或属性数据相关的附加数据。例如,这可用于在特征(例如,点、线或面)和多媒体文件之间建立多对多关系。根据定义,关系的“左边”是“基本”数据,关系的“右边”是“相关”数据。
图1:相关表扩展
gpkg_extensions¶
要使用此扩展,请按照表1中的说明向该表中添加行。
|
|
|
|
|
|
NULL |
|
read-write |
|
实际自定义映射表名称 |
NULL |
|
read-write |
gpkgext_relations¶
此表描述了扩展关系。要定义关系,请在此表中添加一行,其中包含表2中描述的列。
列 |
价值 |
|
主键 |
|
包含要关联的基础数据(例如要素)的表的名称 |
|
中的主键列的名称 |
|
包含相关内容的表的名称 |
|
中的主键列的名称 |
|
关系的名称(配置文件) |
|
客户名称 [user-defined mapping table] (#自定义映射表) |
提示
若要进一步定义关系的语义,请考虑使用 Schema Extension 在 mapping_table_name
列。
自定义映射表¶
用户定义的映射表描述了基础数据和相关数据之间的多对多关系。用户定义的映射表至少需要表3中定义的列。
列 |
价值 |
|
基本数据表的主键值 |
|
相关数据表的主键值 |
在此表中为每个相关对添加一行。
使用配置文件¶
此扩展提供许多配置文件。每个配置文件都添加了一些专门的规则,以使关系更有意义。
媒体¶
当 relation_name
一段关系的关键是“ 媒体 “,则相关表必须是 attributes 至少包含表4中定义的列的表:
提示
如果要避免数据重复,请向用户定义的映射表中添加包含数据哈希的列。这样,您可以在添加表之前检查介质是否已存在。
简单属性¶
当 relation_name
一段关系的关键是“ simple_attributes “,则相关表必须是 attributes 表,且该表必须具有文本、整数或实数列(无BLOB或NULL)。