【问题标题】:Is updating a view in SQL a good practice?在 SQL 中更新视图是一种好习惯吗?
【发布时间】:2016-12-17 12:50:30
【问题描述】:

我正在学习 SQL。如果您可以看到表的几个选择列,PostgreSQL 似乎允许您通过“视图”更新表。另一方面,SQLite 根本不支持这一点(这对我来说更有意义)。

我想知道在允许的情况下通过视图更新表格是否是一种好习惯?

【问题讨论】:

标签: sql database postgresql sqlite


【解决方案1】:

这个问题可能是见仁见智,但我想说通过视图更新数据通常不是一个好习惯,虽然也有例外。

定义视图的主要原因之一是将用户与底层数据结构的变化隔离开来。因为并非所有视图都是可更新的,这意味着对视图定义(但不是结果集)的更改可能会使代码无效。

在某些数据库中,可以通过在视图上使用触发器来解决此问题。

我应该补充的是“一般”思维。拥有视图的另一个原因是访问控制和安全性。例如,某些用户可能无法看到某些表中的某些列;他们可以访问视图,但不能访问基础表。在这种情况下,对视图的更新更合理一些。

说了这么多,我应该指出,我根本不喜欢让用户直接更新数据。我的偏好是通过存储过程进行此类更新,这样可以更好地控制数据模型、审计和用户访问。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-08-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-25
    • 1970-01-01
    • 1970-01-01
    • 2012-04-12
    相关资源
    最近更新 更多