【发布时间】:2017-06-08 07:15:50
【问题描述】:
我在 PostGIS 和 QGIS 中将 PostgreSQL 用于 GIS 目的,但我想我可能会在这里找到比 gis.stackexchange.com 更多的信息,因为我的问题与 GIS 没有直接关系。
我正在使用视图来随意显示数据以满足我的用户的特定需求,例如他们可以访问数据库中的数据,但只是他们需要的。我在我的视图中添加了一些规则,使它们在 QGIS 中“可更新”,并使它们直接被用户“使用”。
QGIS中的显示是基于属性的,但是由于不同的人可能会同时访问相同的数据,他们可能希望根据自己的需要显示和隐藏其中一些数据(地图打印一次)。所以我正在寻找一种方法来为每个视图提供特定的显示,我考虑在视图定义中简单地添加一个“虚拟”列,例如一个布尔值,如下所示:
CREATE VIEW view1 AS
SELECT oid, column1, True as display from table1;
但我希望我的用户能够更改此列的值,以简单地使画布上的对象出现或消失(考虑到此参数,使用基于规则的样式)。显然它不能直接工作,因为更新会与视图的定义相冲突。
有没有人知道如何实现这一目标?也许是物化视图(但我非常喜欢常规视图的动态)?
谢谢。
【问题讨论】:
-
为什么不使用真实的列代替?..在原始表中
-
@VaoTsun 因为我希望每个视图的属性都是特定的,并且一个对象可以在多个视图中(更改属性一次就是在每个视图中更改它)。
标签: postgresql postgis qgis sql-view