在运行时修改视图

Posted

技术标签:

【中文标题】在运行时修改视图【英文标题】:Modify View at Runtime 【发布时间】:2013-03-28 18:22:53 【问题描述】:

这是在运行时更改视图结构的好习惯吗?

我创建了一个视图

CREATE VIEW freligiouschk AS SELECT user_id, religion, caste FROM freligious WHERE religion IN ('Christian-Protestant','Christian-Orthodox','Hindu','Parsi','Christian-Others') OR caste IN ('Rajput','Kurmi/Kurmi Kshatriya','Veluthedathu Nair','Kuruhina Shetty','SKP')

视图已创建 当用户单击按钮时,条件中的那些值会发生变化,就像这样

CREATE VIEW freligiouschk AS SELECT user_id, religion, caste FROM freligious WHERE religion IN ('Jain-Digambar','Muslim-Others','Inter-Religion','Buddhist','NoReligiousBelief') OR caste IN ('Mahishya','SKP','Relli','Bhovi','Karmakar')

这是改变运行时的好习惯吗?如果 2 个或更多用户尝试同时更改视图会发生什么情况?

【问题讨论】:

【参考方案1】:

不,这是一个糟糕的主意。视图在所有数据库用户(有权访问该对象)之间共享;在用户访问视图时更改视图的定义将在多个用户访问系统时导致意外行为 - 以难以测试的方式。

这也不是必须的——视图服务于一堆different purposes,但看起来你正在做的并不是其中之一。

【讨论】:

以上是关于在运行时修改视图的主要内容,如果未能解决你的问题,请参考以下文章

如何修改IDEA的内存

JSF2:在运行时构建 JSF2 视图(整个组件树)

在实例化 ViewController 之前更改/修改运行时用户定义的属性

如何在运行时从超级视图中删除视图?

集合视图标题在运行时不可见

图像视图在运行时不呈现